看起来至少有两个选项可用于获取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 <nant>安静模式下的任务?
- 4. NAnt exec任务与cabwiz.exe失败
- 5. Wise Installation Studio的MSBuild或NAnt或Rake任务
- 6. 示例请求:<msi> nant-contrib的任务
- 7. nant与msbuild:停止服务
- 8. 使用nant构建一个自定义的nant任务
- 9. nant:无效元素nunit2。未知任务或数据类型
- 10. Nant msbuild任务,使用.net 4.0 rc
- 11. Nant任务sysinfo详细信息 - 失败
- 12. nunit2任务,NAnt,Watin - ApartmentState STA错误
- 13. NAnt:获取任务权限被拒绝
- 14. 从nant任务执行svn diff
- 15. 如何用Ant运行Nant任务?
- 16. Nant相当于Ant替换任务
- 17. 如何使某些NAnt任务安静?
- 18. 在NAnt上执行并行任务
- 19. Nant合并任务不执行
- 20. 运行“svn import”的NAnt任务失败
- 21. NAnt <exec> Windows XP上批处理文件的任务总是返回0
- 22. 动态发现与<ant>任务
- 23. MSBuild.exe不接受任何/ P:DefineConstants也不/ P:PreprocessorDefinitions
- 24. DELPHI和WANT或NANT
- 25. Mapper.Map <任务<IEnumerable的<Address>>,任务<IEnumerable的<AddressView>>()
- 26. 获取任务(未任务<T>)
- 27. 当nant任务由cc.net运行时,对nant zip任务中的UNC路径的访问被拒绝,当从命令行手动运行nant时运行正常
- 28. 应该返回任务结束与任务或异步
- 29. 铸造任务<T>的任务<DerivedT>
- 30. 如何将任务<TDerived>转换成任务<TBase>?
哇,谢谢。我从来没有想到NAntContrib远远落后。 – keithm 2009-07-30 11:37:58