Проверьте наличие 32-битной / 64-битной среды в TFSBuild.proj - PullRequest
3 голосов
/ 24 июня 2011

У меня есть 32-битный агент сборки, на котором работают наши MSBuild. Недавно мы добавили новую 64-битную машину в наш массив агентов сборки, но некоторые вещи в нашем файле TFSBuild.proj жестко запрограммированы для 32-битной машины.

Можно ли проверить, является ли среда, в которой строится среда, 32- или 64-битной?

<Exec Command="&quot;C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe&quot; &quot;$(BuildDirectoryPath)\FooProduct/foo.vdproj&quot; /Build &quot;Release&quot;"/>

При запуске сборки на 32-битной машине он должен указывать на C: \ Program Files \ ..., но на 64-битной машине он должен указывать на C: \ Program Files (x86) \ ...

Спасибо

1 Ответ

3 голосов
/ 24 июня 2011

В MSBuild 4.0 имеется свойство $(MSBuildProgramFiles32).

Подробнее на MSBuild Зарезервированные Свойства .

Подпапка MSBuild под \ Program Files \ или \ Program Files (x86) папка. Этот путь всегда указывает в папку 32-битных программных файлов. Например, на 32-разрядной машине путь к папке Program Files. Для 64-битной машины путь к папка Program Files (x86).

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
         DefaultTargets="Test"
         ToolsVersion="4.0">
  <Target Name="Test">
    <Message Text="&quot;$(MSBuildProgramFiles32)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" />
  </Target>
</Project>
...