Определить директиву для всего решения в 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 предупреждение (я)