看起來至少有兩個選項可用於獲取csproj文件:使用NAntContrib的任務或直接使用msbuild.exe(例如,codecampserver)。我是否正確閱讀,如果是這樣,使用msbuild.exe比NAntContrib任務有什麼優勢?<msbuild>任務或msbuild.exe與NAnt?
15
A
回答
23
NAntContrib假定.NET Framework V2.0。如果你想使用.NET 3.5,你需要直接調用MsBuild.exe。在升級到新版本的.NET時,只需修改MSBuildPath屬性。
下面是一個例子:
<property name="MSBuildPath" value="C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe"/>
<target name="build">
<exec program="${MSBuildPath}">
<arg line='"${SolutionFile}"' />
<arg line="/property:Configuration=${SolutionConfiguration}" />
<arg value="/target:Rebuild" />
<arg value="/verbosity:normal" />
<arg value="/nologo" />
<arg line='/logger:"C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll"'/>
</exec>
</target>
不同版本.NET的值MSBuildPath
是
- 2.0,3.0
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\MSBuild.exe
- 3.5
C:\Windows\Microsoft.NET\Framework64\v3.5\MSBuild.exe
- 4,4.5 4.5.1 ,4.5.2
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe
對於一個32位的構建,改變Framework64
到Framework
更新 上的一些評論跟進,在value
屬性被用於那些沒有空格的參數。 line
用於需要由於空格而被分隔的參數。否則,應用程序將使用該空間作爲輸入的結尾。
2
下面是一個簡單的目標
<target>
<loadtasks assembly="${nant::get-base-directory()}/../../nantcontrib-0.85/bin/NAnt.Contrib.Tasks.dll" />
<msbuild project="${filepath.root}/yourproject.csproj" verbose="true">
<arg value="/p:Platform=${build.platform}" />
<arg value="/t:Rebuild" />
<arg value="/p:OutputPath=${build.dir}/bin/" />
</msbuild>
</target>
相關問題
- 1. nant <version>任務
- 2. 的CruiseControl/NANT <copy>任務
- 3. NAnt exec任務與cabwiz.exe失敗
- 4. 與NAnt並行運行多個任務
- 5. nant構建腳本任務
- 6. Wise Installation Studio的MSBuild或NAnt或Rake任務
- 7. 示例請求:<msi> nant-contrib的任務
- 8. nant與msbuild:停止服務
- 9. 使用nant構建一個自定義的nant任務
- 10. nant:無效元素nunit2。未知任務或數據類型
- 11. 覆蓋NAnt中的重複任務?
- 12. 從nant任務執行svn diff
- 13. nunit2任務,NAnt,Watin - ApartmentState STA錯誤
- 14. Nant合併任務不執行
- 15. NAnt中的MSBuild的XmlMassUpdate任務?
- 16. Nant沒有啓動nunit2任務
- 17. 在NAnt並行任務中獲取CCNetBuildDate
- 18. Nant msbuild任務,使用.net 4.0 rc
- 19. 如何用Ant運行Nant任務?
- 20. Nant相當於Ant替換任務
- 21. 在NAnt上執行並行任務
- 22. 如何使某些NAnt任務安靜?
- 23. Nant任務sysinfo詳細信息 - 失敗
- 24. NAnt:獲取任務權限被拒絕
- 25. 運行「svn import」的NAnt任務失敗
- 26. NAnt <exec> Windows XP上批處理文件的任務總是返回0
- 27. Nant Propety與&
- 28. DELPHI和WANT或NANT
- 29. 動態發現與<ant>任務
- 30. MSBuild.exe不接受任何/ P:DefineConstants也不/ P:PreprocessorDefinitions
哇,謝謝。我從來沒有想到NAntContrib遠遠落後。 – keithm 2009-07-30 11:37:58