找出MSBuild中当前操作系统的"位"

Vac*_*ano 6 msbuild 64-bit msbuild-propertygroup

我有一个构建脚本,需要硬编码可执行文件的路径.路径是:

  • C:\ Program Files\Microsoft Visual Studio 9.0\SmartDevices\SDK\SDKTools\cabwiz.exe

这工作正常,但现在我在64位操作系统上运行(但我的同事和构建服务器仍然是32位).

我需要这条路给我:

  • C:\ Program Files (x86)\Microsoft Visual Studio 9.0\SmartDevices\SDK\SDKTools\cabwiz.exe

但是使用其他人的正常路径.

以下是我如何设置它:

<PropertyGroup>
    <CabWiz>"C:\Program Files\Microsoft Visual Studio 9.0\SmartDevices\SDK\SDKTools\cabwiz.exe"</CabWiz>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

有没有我可以提出的条件,以便我可以设置它,如果操作系统(不是当前的构建配置)是64位?

Aar*_*sen 7

有一个注册表项可以告诉您当前操作系统的位编辑.以下是我在MSBuild文件中使用的属性:

<PropertyGroup>
        <MachineProcessorArchitecture>$(registry:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment@PROCESSOR_ARCHITECTURE)</MachineProcessorArchitecture>
        <Is32Bit>False</Is32Bit>
        <Is32Bit Condition="'$(MachineProcessorArchitecture)' == 'x86'">True</Is32Bit>
        <Is64Bit>False</Is64Bit>
        <Is64Bit Condition="'$(MachineProcessorArchitecture)' == 'AMD64'">True</Is64Bit>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)