MSBuild Программные файлы Переменная среды Кросс-платформенная?

У меня есть целевой фрагмент MSBUILD, который имеет что-то вроде ниже для выполнения внешнего приложения:

<Exec Command="&quot;C:\Program Files\dir\do.exe....&quot;" />

Он отлично работает на компьютере с архитектурой x86, но, конечно, он не работает при работе на системе с архитектурой x64, поскольку путь должен быть "Program Files (x86)". Как правильно обрабатывать пути кросс-платформенным способом для файлов сборки?

Благодарю.

1 ответ

Читать это:

http://social.msdn.microsoft.com/Forums/en/msbuild/thread/261edf66-c16d-4be0-995f-5f1edc2ac7b6

Показывает, что установка переменной, а затем выполнение переопределения будет работать. Я экспериментирую с этим, и это, кажется, работает:

 <PropertyGroup>
     <properPath>c:\program files\etc...</properPath>
     <properPath Condition="'$(PROCESSOR_ARCHITECTURE)'=='AMD64' or '$(PROCESSOR_ARCHITEW6432)'=='AMD64'">c:\program files (x86)\etc...</properPath>
 </PropertyGroup>
Другие вопросы по тегам