Как определить символы препроцессора в визуальных студиях C#
Извините, если моя терминология неверна. я написал #if TEST_APP
в моем коде. Теперь я хотел бы определить TEST_APP. Как мне установить его, используя Visual Studio 2010? Это приложение Windows Form.
Бонус, если вы можете сказать мне имя символа, который установлен в проекте winform и в веб-проекте
4 ответа
В обозревателе решений Visual Studio щелкните правой кнопкой мыши проект и выберите Свойства. Откройте вкладку сборки и вы увидите поле "Условные символы компиляции". Это список через запятую или через пробел. Есть также 2 флажка для часто используемых символов: DEBUG и TRACE.
Для ваших веб-проектов вы можете установить поле "WEB_PROJECT" и winforms - "WINFORMS_PROJECT"
На вкладке "Построение" на странице свойств проекта найдите параметр "Условные символы компиляции".
Я не верю, что для веб-приложений и приложений winform по умолчанию определены разные символы. Имейте в виду, что это задано для самого проекта и не повлияет на какие-либо библиотеки классов - поэтому я ожидаю, что любой код в проекте действительно будет знать, находится ли он в приложении Windows или не начинаться с него. Для чего ты думал об этом?
Если вам нужна условная компиляция для динамического отражения условий сборки или среды, проверьте мой ответ на Как установить переменную условной компиляции в Stackru. Я покажу, как включить условную компиляцию на основе внешних условий, таких как версия на языке C#, чтобы вы могли писать код следующим образом:
#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
Способ 1:
#define TEST_APP true
#if TEST_APP == true
#endif
Способ 2:
#define TEST_APP
#if defined(TEST_APP)
#endif
Источник: MSDN