NAnt和VS2008(.NET 3.5) - 不支持解决方案格式的文件Solution.sln

时间:2008-11-29 17:22:14

标签: visual-studio-2008 .net-3.5 nant

我正在尝试使用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>

还有其他人遇到过这个问题吗?我找不到任何有用的东西。

3 个答案:

答案 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。