我有一个运行MSBuild的32位构建代理。我们最近在构建代理程序阵列中添加了一个新的64位机器,但我们的TFSBuild.proj文件中的一些内容是针对32位机器的硬编码。
是否可以检查构建的环境是32还是64位?
<Exec Command=""C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" "$(BuildDirectoryPath)\FooProduct/foo.vdproj" /Build "Release""/>
在32位机器上运行构建时,它必须指向C:\ Program Files \ ...但是在64位机器上,它必须指向C:\ Program Files(x86)\ ...
由于
答案 0 :(得分:3)
MSBuild 4.0中有$(MSBuildProgramFiles32)
属性。
MSBuild Reserved Properties的更多详情。
下的MSBuild子文件夹 \ Program Files \或\ Program Files (x86)文件夹。这条路总是指向的 到32位Program Files文件夹。 例如,在32位机器上, path是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=""$(MSBuildProgramFiles32)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" />
</Target>
</Project>