У меня есть 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 предупреждение (я)
Задача ещё не решена.
Других решений пока нет …