Используйте каталог “Program Files” на 32 бита в msbuild

38
задан Ruben Bartelink 13 April 2011 в 22:53
поделиться

4 ответа

Мое решение состоит в том, чтобы посмотреть, существует ли "c:\program files (x86)", если это существует, предположите, что это - OS на 64 бита. Иначе используйте нормальный каталог программных файлов:

<PropertyGroup>
  <ProgramFiles32 Condition="Exists('$(PROGRAMFILES) (x86)')">$(PROGRAMFILES) (x86)</ProgramFiles32>
  <ProgramFiles32 Condition="$(ProgramFiles32) == ''">$(PROGRAMFILES)</ProgramFiles32>
</PropertyGroup>

я могу использовать его как это

<Exec WorkingDirectory="src\app1" Command='"$(ProgramFiles32)\doxygen\bin\doxygen" Doxyfile' />
16
ответ дан wimh supports Monica 27 November 2019 в 03:25
поделиться

Я думаю, что немного более надежный путь состоит в том, чтобы захватить Переменную среды "ProgramFiles (x86)". В процессе на 64 бита в Windows это укажет на 32 каталога файлов битной программы. Это будет пусто на версии на 32 бита окон, и я верю на процессе wow64

, я недавно столкнулся фактически с той же проблемой с некоторыми сценариями PowerShell. Я записал запись в блоге о том, как обработанное вокруг каталога программных файлов выходит. Различный язык, очевидно, но это может выручить Вас.

http://blogs.msdn.com/jaredpar/archive/2008/10/21/program-files-i-just-want-the-32-bit-version.aspx

4
ответ дан JaredPar 27 November 2019 в 03:25
поделиться

Попробуйте "$ (MSBuildExtensionsPath32) \ .."

8
ответ дан 27 November 2019 в 03:25
поделиться

Я наткнулся на этот вопрос, пытаясь найти общий способ в MSbuild, чтобы узнать, 32- или 64-разрядная это ОС. На случай, если кто-то еще найдет это, я использовал следующее:

<PropertyGroup>
  <OSBits Condition="$(ProgramW6432) != ''">x64</OSBits>
  <OSBits Condition="$(OSBits) == ''">x32</OSBits>
</PropertyGroup>

Очевидно % ProgramW6432% установлен только в 64-битных системах.

1
ответ дан 27 November 2019 в 03:25
поделиться
Другие вопросы по тегам:

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