Директива препроцессора Visual Studio 2013 DEBUG всегда определена - PullRequest
0 голосов
/ 17 мая 2019

Я добавил новый проект в решение 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

Visual studio считает, что это неактивный код, но он явно скомпилирован и выполнен (и отлажен).

Это делает невозможным сборку релизов.

Редактировать: чтобы уточнить вопрос ниже: это не модульный тест, но я начинаю подозревать, что отладочные библиотеки DLL взяты. Чтобы выпустить релиз, я быстро удалил весь код в #if DEBUG, и даже после компиляции программа попыталась открыть отладочную БД. Когда я перекомпилировал отладку, все было в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...