msbuild: установить конкретный препроцессор #define в командной строке

Проекты C++ (и решения) (пока?) не msvs интегрированы в среду MSBuild. В vs.net рамках процесса сборки вызывается c++ VCBuild task, который является просто c++ оберткой вокруг vcbuild.exe.

Вы можете:

  • создайте специальную конфигурацию для вашего решения, в которой будет определено ACTIVATE=1, и скомпилируйте ее с помощью devenv.exe (с переключателем /ProjectConfig).
  • создайте свой собственный целевой файл, чтобы обернуть свой вызов в VCBuild task (см. параметр Override)...
  • используйте vcbuild.exe вместо msbuild.exe. (похоже, vcbuild.exe не имеет эквивалента параметра Override).

Обратите visual-studio внимание, что ваше решение visual-studio не будет работать и для проектов c++ C#, если вы немного не подкорректируете msvs файлы проекта. Для справки, вот visual-studio как я бы это сделал:

  • Добавьте следующий код перед вызовом :

  $(DefineConstants);$(MyConstants)
  • Вызовите MSBuild следующим образом:
msbuild /p:MyConstants="ACTIVATE=1"

c++

visual-studio

msbuild

2022-11-17T01:18:29+00:00
Вопросы с похожей тематикой, как у вопроса:

msbuild: установить конкретный препроцессор #define в командной строке