2015-05-27 2 views
0

У меня есть проект, который компилируется в .exe Этот проект должен быть доступен в 2-х выпусках. Каждый раз, когда я выполняю обновление, мне нужно прокомментировать несколько частей для «edition A» и vica versa для «издания B».Как автоматически (un) комментировать код для сборки?

Причина для «(un) комментирования» вместо того, чтобы просто использовать параметр конфигурации или какую-либо переменную контекста, потому что я не хочу, чтобы промежуточный код из «Edition A» был доступен в «Edition B» и vica versa, потому что это значительно облегчило бы жизнь программных крекеров.

Есть ли способ в визуальной студии добавить/удалить код из компиляции на основе настроек?

Спасибо!

ответ

1

Может быть, вам нужно Preprocessor Directives:

#define PI 
using System; 
namespace PreprocessorDAppl 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
     #if (PI) 
      Console.WriteLine("PI is defined"); 
     #else 
      Console.WriteLine("PI is not defined"); 
     #endif 
     Console.ReadKey(); 
     } 
    } 
} 
+0

Спасибо за ваш ответ , Похоже, это что-то, что нужно выполнить для каждого файла, если я прав? Пальцы вверх. См. Мой ответ, чтобы посмотреть, что я сделал. С Уважением, – user1841243

1

Исходя из этого SO поста я нашел ответ на мой вопрос:

#if debug --> #if myOwnConfig?

ПЕРВЫЙ:

1.Build -> Конфигурация менеджер -> Конфигурация активных решений -> Новые ...

2. Создайте новую конфигурацию «Offline».

3.Project -> Свойства -> Build -> Конфигурация -> Оффлайн

4.Conditional компиляции символов: тип OFFLINE

5.Save проект.

ТОГДА, щелкните правой кнопкой мыши ваш проект

1.Go в Свойства -> Build.

2.At выпадающего меню настройки выберите "Offline"

3.Add "OFFLINE" в "условных символов компиляции" текстовое поле

Результат:

#if Offile 
     MessageBox.Show("Offline"); 
#endif 

#if NotOffline 
     MessageBox.Show("NotOffline"); 
#endif