【问题标题】:Check for 32bit/64bit environment in TFSBuild.proj检查 TFSBuild.proj 中的 32 位/64 位环境
【发布时间】:2025-11-27 23:40:01
【问题描述】:

我有一个 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)\...

谢谢

【问题讨论】:

    标签: .net visual-studio msbuild 64-bit


    【解决方案1】:

    MSBuild 4.0 中有$(MSBuildProgramFiles32) 属性。

    更多详情请访问MSBuild Reserved Properties

    MSBuild 子文件夹下 \Program Files\ 或 \Program Files (x86) 文件夹。这条路总是指向 到 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>
    

    【讨论】: