I have a build script that needs to hard code a path to an executable. The path is:
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:
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?
В 64-битной ОС определены следующие переменные:
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
Так что просто проверьте ProgramFiles (x86)
, а если он пуст, используйте ProgramFiles
.
Если вы всегда используете 32-разрядную версию MSBuild, независимо от платформы, это просто: просто замените «C: \ Program Files» на «$ (ProgramFiles)». В 32-разрядной или 64-разрядной ОС «$ (ProgramFiles)» должен расширяться до правильного расположения папки (расположения всех 32-разрядных программ).
Если вы используете 64-битную версию MSBuild на 64-битных платформах (что маловероятно), тогда все становится немного сложнее. Может показаться, что переменная среды '% ProgramFiles (x86)%' - это то, что вам нужно, но удачи вам с этими круглыми скобками. Вероятно, проще было бы использовать переменную среды "% PROCESSOR_ARCHITECTURE%" в условии.