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

Visual studio 2008 NAnt和VS2008(.NET 3.5)-不支持文件Solution.sln的解决方案格式,visual-studio-2008,.net-3.5,nant,Visual Studio 2008,.net 3.5,Nant,我正在尝试使用VS2008 SP1和x64 XP运行NAnt 0.86b1 我有一个基本的构建文件(如下),它给出了错误 不支持文件“Solution.sln”的解决方案格式 还有其他人遇到过这个问题吗?我找不到任何有用的东西。您会注意到,文档表明NAnt的任务不支持比VS2003更新的解决方案文件 我建议所有比VS2003更新的项目都使用 此外,NAnt的.85版本仅支持2.0以下的框架版本。让事情在3.5框架下运行的最纯粹的方法是使用NAnt的版本。然后,您将能够对3.5解决方案使

我正在尝试使用VS2008 SP1和x64 XP运行NAnt 0.86b1

我有一个基本的构建文件(如下),它给出了错误 不支持文件“Solution.sln”的解决方案格式



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

您会注意到,文档表明NAnt的任务不支持比VS2003更新的解决方案文件

我建议所有比VS2003更新的项目都使用


此外,NAnt的.85版本仅支持2.0以下的框架版本。让事情在3.5框架下运行的最纯粹的方法是使用NAnt的版本。然后,您将能够对3.5解决方案使用
任务。

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>

请参见


这里是堆栈溢出。基本上,您只有几个选项,使用项目构建文件、通用构建文件和主构建文件自己控制所有构建。或者运行Exec任务,为要编译的每个解决方案执行正确版本的MSBuild。

+1用于使用MSBuild任务。自从我开始自动化构建以来,我一直在使用这两种方法,而msbuild的启动和运行速度更快。我还认为使用实际的解决方案/项目文件来运行构建是一个“好主意”,因为这意味着所有构建信息都在一个地方。(而不是为VS和Nant配置提供解决方案/项目。)
  <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>