Я добавил новый проект в решение Visual Studio 2013 (12.0.40629.00 Update 5), и внезапно проверки #if DEBUG
проходят для скомпилированного кода, даже в выпуске. «Определить константу DEBUG» отключено для сборки выпуска, и все проекты создаются как выпуск (как видно из диспетчера конфигурации).
Я нахожу несколько вещей в Google, что это известная ошибка, которую можно обойти, выгрузив и перезагрузив проект (например, здесь , но это не помогает).
Я тоже пытался undef DEBUG
, но тоже не повезло.
Существующие проекты в решении работают, но этот новый - нет. Это стандарт Dotnet 4.5, но его установка на 3.5 не помогает.
Как указание на то, что происходит в сборке релиза:
![Screenshot if debugging disabled code](https://i.stack.imgur.com/caG9w.png)
Visual studio считает, что это неактивный код, но он явно скомпилирован и выполнен (и отлажен).
Это делает невозможным сборку релизов.
Редактировать: чтобы уточнить вопрос ниже: это не модульный тест, но я начинаю подозревать, что отладочные библиотеки DLL взяты. Чтобы выпустить релиз, я быстро удалил весь код в #if DEBUG
, и даже после компиляции программа попыталась открыть отладочную БД. Когда я перекомпилировал отладку, все было в порядке.