Определить директиву для всего решения в Visual Studio на основе имени решения?

У меня есть 2 решения Visual Studio (C++), и каждое из них состоит из нескольких проектов. Существует один проект, который является общим для этих двух решений. в этом проекте есть файл, который не может быть скомпилирован одинаково для этих двух решений. потому что у него есть некоторые дополнительные части для одного из решений. Я хотел использовать для этого директивы, основанные на имени решения, но после многих поисков я не смог найти способ сравнения строк в директивах.

редактировать: я решил использовать событие перед сборкой. во-первых, я определил переменную препроцессора следующим образом:

определять

после этого я добавил код к событиям перед сборкой, например так:

код

но я получаю синтаксическую ошибку:

Командные строки Создание временного файла "c:\MNC_SCADA\Server\Data_Acqusition\Debug\BAT0000AF6808284.bat" с содержимым [

@ эхо выключено

if "DAC" == "DAC"(

установить COMPILE_SERVER =% 1

)

остальное (

установить COMPILE_SERVER =% 0

)

если errorlevel 1, перейдите к VCReportError

перейти к VCEnd

: VCReportError

echo Project: ошибка PRJ0019: инструмент вернул код ошибки из "Выполнение события перед сборкой..."

выход 1

: VCEnd

]

Создание командной строки "c:\MNC_SCADA\Server\Data_Acqusition\Debug\BAT0000AF6808284.bat"

Окно вывода, выполняющее событие перед сборкой... Синтаксис команды неверен. Проект: ошибка PRJ0002: Результат ошибки 255 возвращен из "C:\Windows\SysWow64\cmd.exe".

Журнал сборки результатов был сохранен в "file://c:\MNC_SCADA\Server\Data_Acqusition\Debug\BuildLog.htm" Сбор данных - 1 ошибка (ов), 0 предупреждение (я)

0 ответов

Другие вопросы по тегам