Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Добавление/удаление кода во время компиляции


Автор: ShadowDancer 26.2.2010, 04:23
День добрый! Есть такая задача: один большой исходный код моей программы совмещает в себе как полную версию, так и лайт и демо версии. При компиляции полной версии, мне необходимо расскомментировать некоторые небольшие участки кода... При компиляции лайт версии, нужно закомментировать некоторые участки... При демо версии нужно закомментировать еще больше кода...
Каждый раз проделывать это вручную - утомительно, да и может случиться так (при не внимательности), что вместо демки получится полная версия...
И собственно вопрос: существуют ли в Visual Studio или в самом .NET компиляторе, функции, которые помогли бы мне облегчить выполнение этой задачи?
Спасибо за любую помощь!

Автор: нуп 26.2.2010, 04:28
Не знаю для с#, но в с++ есть #ifdef. Пример такой
Код

#define demo 1

#ifdef demo
   Пишем код для демо
#else
 Пишем код для полной 
#endif

Автор: Fortnox 26.2.2010, 10:14
нуп, в C# тоже это есть.

Допустим есть 2 конфигурации: Lite и Demo
Примерный участок кода:
Код

#if Lite
        public static void Print()
        {
            Console.WriteLine("Lite");
        }
#endif
#if Demo
        public static void Print()
        {
            Console.WriteLine("Demo");
        }
#endif

Символы Demo и Lite ведь нужно объявить, например:
Код

#define Demo

Но придется делать так в каждом файле, что очень утомительно.
Вместо этого идем в свойства проекта на вкладку "Построение" (Build), в поле "Символы условной компиляции" (Conditional compilation symbols) для каждого типа конфигурации пишем:
  • Если конфигурация Lite - Lite
  • Если Demo - Demo
Все, теперь не надо будет добавлять в начало каждого файла #define.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)