-1

Пожалуйста, учитывайте следующую ситуацию: У меня есть файл C++, и мы называем этот код C++ кодом C#. В файле C++, есть флагКак я могу использовать разные файлы C++ в тестовом и производственном коде?

#define HasFeature 

Я хотел бы этот флаг, чтобы быть неопределенным в коде производства, и только в моем тестовом коде я хочу, чтобы активировать их. После завершения теста я хочу, чтобы он снова не был определен.

Я знаю, что это функция времени компиляции, и ее редактирование во время выполнения будет невозможно. Я не могу преобразовать #define в нечто вроде члена класса из-за другой причины.

Одна вещь, которую я могу придумать для добавления двух файлов, в одном из них указан флаг, а один из них - неопределенный, а в test.proj используется файл с указанным флагом, а production.proj использует файл с флаг не определен. Это возможно в Visual Studio? Если да, то как я могу это сделать? (Может быть, использовать некоторые функции в csproj и т. Д.?)

Спасибо, заранее.

+0

Если макрос является единственным вариантом (это не так), вы должны создать несколько сборок проекта. Добавьте новую конфигурацию за пределы встроенных конфигураций Debug и Release, таких как «ReleaseProduction». Развертывание правильного вкуса исполняемого файла зависит от вас. –

+0

Что такое другие варианты макроса? –

ответ

0

Вы можете определить свой флаг с параметром командной строки в сборке:

/p:DefineConstants="HasFeature" 

В этом случае вам просто нужно установить это только в тестовой сборке и удалить этот параметр в вашем определении производства сборки.