.net - win7 - windows net framework version




nAnt仍然支持並適用於.net 3.5/VS2008? (5)

我正在使用MSBuild來建立我的東西。 我想通過Build Server使用CruiseControl.net。

現在,CCNET引用了很多,但看起來好像ccnet可以通過項目配置和msbuild做大部分的工作。 此外,nAnt似乎有點不受支持,現在已經有近一年的Beta版了。

簡而言之:我對MSBuild非常滿意(特別是因為它是“官方”編譯器的前端),而且對nAnt有點不舒服,但是我不想過早地判斷。

什麼原因使用nAnt MSBuild? 特別是對於ccnet來說,這似乎與功能(和添加自動構建相關的東西)方面重疊了一點點,


CC.NET只是構建服務器技術,而不是構建腳本技術。 我們在工作中使用CC.NET,可以非常成功地調用MSBuild構建腳本。

NAnt是一個比較成熟的構建腳本語言,但它們在工作方式上都是相似的。 在NAnt中我可以做的事情很少,我不能在MSBuild中做,所以它真的歸結為哪一個更適合你。 就NAnt的活躍程度而言,最後一個版本的時候不要過去,而應該在最後一個版本的時候去做。 NAnt往往會在發布之間耗費很長時間,但是每晚的版本通常都非常穩定。


在我看來,這更多的是個人喜好的問題。 nAnt是一個很好的框架,MSBuild幾乎可以勝任。 有了輕鬆開發自定義任務(在兩個框架中)的功能,您幾乎可以完成任何您需要執行的任務。

我不能回答你的問題中的“仍然支持”部分,但是我會說,如果你已經習慣了nAnt,那麼它可能是可行的。 如果你(或者你的團隊中的某個人)熟悉MSBuild,那麼這也是一個好的方法。


如果你已經有了一大堆用於nAnt的自定義任務,那麼堅持下去 - 你不會在MSBuild中獲得太多的收穫。 也就是說,似乎沒有任何事情可以做,MSBuild不能在其核心。 兩者都可以調用外部工具,都可以運行基於.Net的自定義任務,並且都有一堆社區任務。

我們在這裡使用MSBuild的原因是,你現在是VS的默認編譯系統,而且我們沒有任何nAnt特定的東西需要擔心。

MSBuildCommunityTasks是一個很好的第三方任務基礎,涵蓋了我在nAnt中做過的大部分自定義工作,包括VSS和Subversion支持。


就像很多人已經指出的那樣,這裡的答案是“取決於”。 在NAnt中有一些重複操作更簡單更清潔的事情。 請參閱MSDN論壇以獲得關於此的討論。


老實說這取決於什麼適合你的環境更好。 如果你使用了很多非微軟工具,nunit,ccnet,ncover。 你可能會找到更好的支持。 或者,如果您使用MSTest,TFSBuild,您可能會發現MSBuild更好的環境。 我會學習和使用每一個適合你的環境更順利。





nant