在TFSBuild.proj中检查32位/64位环境

3

我有一个32位的构建代理,我们的MSBuild在其上运行。最近我们添加了一台新的64位机器到我们的构建代理数组中,但是我们TFSBuild.proj文件中的一些东西是为32位机器硬编码的。

有没有可能检查正在构建的环境是32位还是64位?

<Exec Command="&quot;C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe&quot; &quot;$(BuildDirectoryPath)\FooProduct/foo.vdproj&quot; /Build &quot;Release&quot;"/>

在32位机器上运行构建时,它必须指向C:\Program Files\...,但在64位机器上,它必须指向C:\Program Files (x86)\...。谢谢。
1个回答

3

在MSBuild 4.0中有一个名为$(MSBuildProgramFiles32)的属性。

更多细节请参考MSBuild保留属性

位于\Program Files\或\Program Files (x86)文件夹下的MSBuild子文件夹。该路径始终指向32位Program Files文件夹。例如,在32位机器上,该路径是指向Program Files文件夹。对于64位机器,该路径是指向Program Files (x86)文件夹。

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
         DefaultTargets="Test"
         ToolsVersion="4.0">
  <Target Name="Test">
    <Message Text="&quot;$(MSBuildProgramFiles32)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" />
  </Target>
</Project>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接