Find out the “Bit”ness of the current OS in MSBuild

I have a build script that needs to hard code a path to an executable. The path is:

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

This has worked fine, but now I am running on a 64 bit OS (but my coworker and build server are on 32 bit still).

I need the path to be this for me:

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

But use the normal path for the others.

Here is how I set it up:

<PropertyGroup>
    <CabWiz>"C:\Program Files\Microsoft Visual Studio 9.0\SmartDevices\SDK\SDKTools\cabwiz.exe"</CabWiz>
</PropertyGroup>

Is there a condition I can put on that so that I can set it if the OS (not the current build configuration) is 64 bit?

6
задан Vaccano 17 August 2010 в 17:41
поделиться

2 ответа

В 64-битной ОС определены следующие переменные:

ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)

Так что просто проверьте ProgramFiles (x86) , а если он пуст, используйте ProgramFiles .

3
ответ дан 8 December 2019 в 17:17
поделиться

Если вы всегда используете 32-разрядную версию MSBuild, независимо от платформы, это просто: просто замените «C: \ Program Files» на «$ (ProgramFiles)». В 32-разрядной или 64-разрядной ОС «$ (ProgramFiles)» должен расширяться до правильного расположения папки (расположения всех 32-разрядных программ).

Если вы используете 64-битную версию MSBuild на 64-битных платформах (что маловероятно), тогда все становится немного сложнее. Может показаться, что переменная среды '% ProgramFiles (x86)%' - это то, что вам нужно, но удачи вам с этими круглыми скобками. Вероятно, проще было бы использовать переменную среды "% PROCESSOR_ARCHITECTURE%" в условии.

1
ответ дан 8 December 2019 в 17:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: