Пользовательские условные символы компиляции - PullRequest
0 голосов
/ 20 октября 2018

В настоящее время я борюсь за использование пользовательских конфигураций.Мое решение имеет одну стандартную библиотеку .NET и два других проекта (один для Windows, один для Android), в которых используется библиотека.

Я пытаюсь дать библиотеке постоянные компилятора WINDOWS и MOBILE.

Вот как я пробовал это несколько раз:

  1. Создайте две новые конфигурации WindowsDE и MobileDE, скопируйте настройки из конфигурации Debug и создайте новую конфигурацию проекта.При некоторых попытках я также удалял конфигурацию Debug по умолчанию, но это не помогло

  2. Свойства библиотеки -> Build, выберите WindowsDE и поместите WINDOWS в поле Условные символы компиляции, затем выберите MobileDE ипоместите в него ANDROID.

Я проверяю это с помощью вызова метода из библиотеки:

#if WINDOWS
        System.Diagnostics.Debug.WriteLine("Windows");
#endif

#if ANDROID
        System.Diagnostics.Debug.WriteLine("Android");
#endif

Но это не работает вообще.Также просто использование

System.Diagnostics.Debug.WriteLine("anything");

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

Буду признателен за любую помощь по этому

1 Ответ

0 голосов
/ 20 октября 2018

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

enter image description here

#if WINDOWS
    System.Diagnostics.Debug.WriteLine("Windows"); // NOT printed!
#endif

#if ANDROID
    System.Diagnostics.Debug.WriteLine("Android"); // Printed!
#endif

Вы можете ввести несколько символов, разделенных точкой с запятой.Не устанавливайте их true или false.Те, что перечислены true.Пропущенные из них автоматически false.

Если ни то, ни другое не печатает, то, возможно, решение не скомпилируется, и вы запускаете старый код.Попробуйте перестроить решение.

...