Как определить символы препроцессора в визуальных студиях 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

Другие вопросы по тегам