我注意到最初在VS 2008中创建的项目不使用nantcontrib msbuild任务进行编译。有一个我见过here的解决方案,但考虑到“MSBuildBinPath”已经被删除,它看起来有点像黑客,我并不完全喜欢在每个项目文件中更改此属性的想法我在VS 2008中创建的。
如果没有更改构建脚本以通过exec任务调用msbuild,有没有办法将msbuild任务指向特定版本的MSBuild?也许这是为Nant的下一个版本所做的工作?
答案 0 :(得分:3)
还有另一个选项,直接调用MsBuild.exe。
以下是一个例子:
<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" />
</exec>
</target>
如果你从Cruise Control .NET中调用Nant,你也可以添加这个参数:
<arg line='/logger:"C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll"'/>
答案 1 :(得分:1)