Есть ли способ для проекта MSBuild определить, работает ли 32-разрядная или 64-разрядная версия MSBuild? - PullRequest
2 голосов
/ 31 августа 2010

Найдя ответ на мой вопрос о 64-битной версии MSBuild, пытающейся загрузить 32-битные расширения, теперь мне стало необходимо определить, 64-битная или 32-битнаябитовая версия MSBuild работает, поэтому я могу загрузить правильную версию DLL.

Я могу проверить переменную $ (MSBuildBinPath) по списку известных путей, но это не сработает, если MSBuild запускается из некоторыхнестандартное расположение.Это не элегантное решение.

Есть ли какой-нибудь способ надежно определить, является ли запущенный в настоящее время MSBuild (или другой процесс, на котором установлен механизм MSBuild) 32-разрядным или 64-разрядным?

Ответы [ 2 ]

1 голос
/ 27 сентября 2010

Рассматривали ли вы написание пользовательской задачи MSBuild, которая возвращает битность текущего процесса?

См. Как обнаружить 64-битную платформу Windows с помощью .NET? для примера.

0 голосов
/ 01 сентября 2010

Есть связанный вопрос на Узнайте "битность" текущей ОС в MSBuild .На этот вопрос есть ответ Blindy , в котором говорится:


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

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

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

...