C # if / then директивы для отладки и выпуска - PullRequest
384 голосов
/ 20 января 2010

В свойствах решения у меня есть Конфигурация, установленная на "выпуск" для моего единственного проекта.

В начале основной процедуры у меня есть этот код, и он показывает «Mode = Debug». У меня также есть эти две строки в самом верху:

#define DEBUG 
#define RELEASE

Тестирую ли я правильную переменную?

#if (DEBUG)
            Console.WriteLine("Mode=Debug"); 
#elif (RELEASE)
            Console.WriteLine("Mode=Release"); 
#endif

Моя цель - установить разные значения по умолчанию для переменных в зависимости от режима отладки и выпуска.

Ответы [ 12 ]

3 голосов
/ 02 июля 2015

Совет, который может сэкономить вам много времени - не забывайте, что даже если вы выберете debug в конфигурации сборки (в меню vs2012 / 13 оно находится в разделе BUILD => CONFIGURATION MANAGER) - этого недостаточно.

Вам нужно обратить внимание на ИЗДАТЕЛЬСТВО Configuration, как таковое:

enter image description here

0 голосов
/ 15 сентября 2013

Поскольку целью этих директив COMPILER является указание компилятору НЕ включать код, отладочный код, бета-код или, возможно, код, который необходим всем вашим конечным пользователям, за исключением, скажем, тех, кто занимается рекламным отделом, т.е. Вы хотите иметь возможность включать или удалять их в зависимости от ваших потребностей. Без необходимости изменять исходный код, если, например, не AdDept сливается с AdDept. Тогда все, что нужно сделать, это включить директиву #AdDept на странице свойств параметров компилятора существующей версии программы и выполнить компиляцию, и все! код объединенной программы оживает!

Возможно, вы также захотите использовать декларативный для нового процесса, который не готов к прайм-тайму или который не может быть активным в коде, пока не пришло время его выпустить.

Во всяком случае, так я это делаю.

...