Понятие, которое вы описываете, звучит хорошо.
То есть код использует:
#if VERSION10 ... #endif
, а конфигурация проекта определяет VERSION10
и решениеконфигурация настроена на использование вышеуказанной конфигурации проекта.
Пока все они настроены правильно, я ожидаю, что она будет работать.
Тот факт, что вы говорите, даже# если DEBUG не работает должным образом, это говорит о том, что что-то очень сломано.
Я бы посоветовал вам попробовать самый простой из возможных вариантов, чтобы убедиться, что вы недовольны и как его настроить: создайте новый минимальный "привет" мир«Приложение, которое имеет простой код, который позволяет вам различать версии:
#if VERSION1
Console.WriteLine("Hello from version 1");
#else
Console.WriteLine("Hello from version 2");
#endif
Затем создайте конфигурации проекта (« Отладка версии 1 »,« Отладка версии 2 ») и посмотрите, сможете ли вы их настроить.(один с определенной версией VERSION1, один без), чтобы получить два выходных сигнала при сборке.
Затем добавьте конфигурации решений, использующие вышеуказанные конфигурации проекта, и соберите их, чтобы проверить, что они печатаютКогда все это будет выполнено.
После того, как вы это сделаете, у вас должна быть работающая система (понимание того, как эти элементы связаны друг с другом), которую вы сможете применить к своему более сложному проекту.Чтобы применить их обратно, я предлагаю удалить большинство конфигураций проекта / решения, а затем перестроить их с нуля, теперь, когда вы уверены, что знаете, что делать, - часто перестройка этих вещей из первых принципов работает лучше, чем попытка настроить существующий «сломанный»«вернуться к жизни.