Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2008 需要将Visual Studio 2008 MSBuild脚本转换为VS2010的帮助吗_Visual Studio 2008_Visual Studio 2010_Msbuild - Fatal编程技术网

Visual studio 2008 需要将Visual Studio 2008 MSBuild脚本转换为VS2010的帮助吗

Visual studio 2008 需要将Visual Studio 2008 MSBuild脚本转换为VS2010的帮助吗,visual-studio-2008,visual-studio-2010,msbuild,Visual Studio 2008,Visual Studio 2010,Msbuild,我有一个简单的MSBuild脚本,如下所示 ... <Target Name="CompileSolution"> <Exec Command="&quot;$(VS90COMNTOOLS)..\IDE\devenv.exe&quot; ..\MyProject.All.sln /build" /> </Target> ... 我检查了环境变量“VS100COMNTOOLS”是否存在。如果我修改命令以使用devenv.

我有一个简单的MSBuild脚本,如下所示

  ...
  <Target Name="CompileSolution">
    <Exec Command="&quot;$(VS90COMNTOOLS)..\IDE\devenv.exe&quot; ..\MyProject.All.sln /build" />
  </Target>
  ...
我检查了环境变量“VS100COMNTOOLS”是否存在。如果我修改命令以使用
devenv.exe的完整路径而不是变量,则一切正常。但这只是一个暂时的解决方案,因为我的同事的devenv路径不同


在Visual Studio 2010 MSBuild脚本中查询
VS100COMNTOOLS
路径的最佳方法是什么?

我不知道这是否有用,但您可以使用MSBuild本身,而不是使用Visual studion进行生成,例如:

 <PropertyGroup>
    <Configuration>Release</Configuration>
  </PropertyGroup>

<Target Name="CoreBuild">
  <Message text="Core Build"/>
  <MSBuild Projects ="@(ProjectsToBuild)" 
           ContinueOnError ="false" 
           Properties="Configuration=$(Configuration)" >
      <Output ItemName="OutputFiles" TaskParameter="TargetOutputs"/>
  </MSBuild>
</Target>

  <ItemGroup>
    <ProjectsToBuild Include="**\*sln" Exclude="$(MSBuildProjectFile)"/>
  </ItemGroup>

释放

无法解决问题,但这似乎正是我想要实现的,谢谢。该方法还允许如果您有一个大的构建,您可以使用“/m”之类的东西可以在多个核上运行生成的开关。@schlaviener实际上是在visual studio中执行生成时-发生向后转换-visual studio将sln文件转换为MSBuild生成文件并执行相应的目标。你可以在这里(或在该博客的其他文章中)阅读更详细的信息:@Alexey,我知道。但最初的问题是,VS2010中不存在
$(VS90COMNTOOLS)
变量,将其更改为
$(VS100COMNTOOLS)
也不起作用。由于我们的开发团队同时使用x86和x64操作系统,因此将var更改为
devenv.exe
的完整路径不是一个好的解决方案。然而,使用目标CoreBuild似乎是一个更好的解决方案,但还没有尝试过。
<Exec Command="echo $(VS100COMNTOOLS)" />
 <PropertyGroup>
    <Configuration>Release</Configuration>
  </PropertyGroup>

<Target Name="CoreBuild">
  <Message text="Core Build"/>
  <MSBuild Projects ="@(ProjectsToBuild)" 
           ContinueOnError ="false" 
           Properties="Configuration=$(Configuration)" >
      <Output ItemName="OutputFiles" TaskParameter="TargetOutputs"/>
  </MSBuild>
</Target>

  <ItemGroup>
    <ProjectsToBuild Include="**\*sln" Exclude="$(MSBuildProjectFile)"/>
  </ItemGroup>