我正在尝试使用VS2008 SP1和x64 XP运行NAnt 0.86b1。
我有一个基本的构建文件(下面),它给出了错误 不支持文件'Solution.sln'的解决方案格式。
<property name="nant.settings.currentframework" value="net-3.5" />
<target name="build" description="Full Rebuild" depends="clean,compile" />
<target name="clean" description="Cleans outputs">
<delete dir="bin" failonerror="false" />
<delete dir="obj" failonerror="false" />
</target>
<target name="compile" description="Compiles solution">
<solution configuration="debug" solutionfile="Solution.sln" />
</target>
还有其他人遇到过这个问题吗?我找不到任何有用的东西。
答案 0 :(得分:8)
您会注意到文档表明NAnt的<solution
>任务不支持比VS2003更新的解决方案文件。
我建议对所有比VS2003更新的项目使用the <msbuild>
task from nantcontrib。
此外,.85版本的NAnt仅支持最高2.0的框架版本。使用3.5框架的最简单方法是使用NA {的.86-beta1版本。然后,您就可以对3.5解决方案使用<msbuild>
任务。
答案 1 :(得分:7)
nant-0.86-beta1支持3.5但不在解决方案节点中有多好。我最终在nantcontrib中使用了这个:
<target name="build" description="Compiles using the AutomatedDebug Configuration">
<!-- <loadtasks assembly="C:\Dev\nant-0.86-beta1\bin\NAnt.Contrib.Tasks.dll" /> -->
<msbuild project="${Solution.Filename}">
<property name="Configuration" value="Release"/>
</msbuild>
</target>
答案 2 :(得分:2)
请参阅Building the platform code with nant and VS2008
这是堆栈溢出。基本上你只有几个选项,用项目构建文件,公共构建文件和主构建文件自己控制所有构建。或者运行Exec任务为每个要编译的解决方案提供正确版本的MSBuild。