Как определить символы препроцессора в визуальных студиях С#
Извините, если моя терминология неверна. Я написал #if TEST_APP
в своем коде. Теперь я хотел бы определить TEST_APP. Как установить его с помощью visual studio 2010? Это приложение в виде окон.
Бонус, если вы можете указать мне имя символа, установленного в проекте winform и в веб-проекте
Ответы
Ответ 1
В Visual Studio Solution Explorer щелкните правой кнопкой мыши проект и выберите "Свойства". Откройте вкладку сборки, и вы увидите поле "Условные символы компиляции". Это список, разделенный запятыми, или пробел.
Есть также 2 флажка для обычно используемых символов, DEBUG и TRACE.
Для ваших веб-проектов вы можете установить поле "WEB_PROJECT" и winforms на "WINFORMS_PROJECT"
Ответ 2
На вкладке "Сборка" страницы свойств проекта найдите "Условные символы компиляции".
Я не верю, что для веб-приложений и winform-приложений по умолчанию установлены разные символы. Помните, что это настроено для самого проекта и не повлияет на какие-либо библиотеки классов, поэтому я ожидаю, что какой-либо код внутри проекта действительно будет знать, будет ли он работать в приложении Windows или нет. О чем вы думали использовать это?
Ответ 3
Если вам нужна ваша условная компиляция для динамического отражения условий сборки или среды, проверьте мой ответ на Как установить условную переменную компиляции в StackOverflow. Я показываю, как включить условную компиляцию на основе внешних условий, таких как версия языка С#, чтобы вы могли писать такой код:
#if CSHARP7
ref T pi = ref rg[i], pj = ref rg[j];
var t = pi; // swap elements: managed pointers
pi = pj;
pj = t;
#else
var t = rg[i]; // swap elements: clunky
rg[i] = rg[j];
rg[j] = t;
#endif
Ответ 4
Способ 1:
#define TEST_APP true
#if TEST_APP == true
#endif
Способ 2:
#define TEST_APP
#if defined(TEST_APP)
#endif
Источник: MSDN