У нас есть веб-приложение C#, которое публикуется с использованием сценария Powershell. В нашем коде C# мы имеем несколько мест, где мы проверяем #if DEBUG
, чтобы условно скомпилировать приложение с дополнительной поддержкой для ведения журнала.Как предотвратить постоянный препроцессор DEBUG от # DEFINE'd автоматически при публикации из msbuild.exe
Проблема постоянной DEBUG
определяется, когда мы помещаем из командной строки с помощью следующей команды:
cmd /c "path\to\msbuild.exe path\to\project.csproj /p:DeployOnBuild=true;PublishProfile=Development /verbosity:minimal"
Мы создали «Развитие» построить конфигурацию, чтобы соответствовать нашей общей среде разработки, а затем в Визуальном Студия через GUI устанавливает конфигурацию сборки «Разработка» при создании профиля публикации.
Как предотвратить автоматическое определение константы препроцессора DEBUG
?
Должно быть, мне не хватает чего-то простого.
Укажите, какую конфигурацию вы хотите построить. Сейчас вы построите все из них, некоторые с неправильным свойством DeployOnBuild, которое может объяснить, почему определено DEBUG. Должна напоминать/p: Конфигурация = Разработка. Должно быть, легко видно из вывода msbuild btw, убедитесь, что вам нужно лететь слепой. Использование «cmd.exe/c» имеет умение слишком быстро закрыть окно консоли,/k поддерживает его. –
@HansPassant: Таким образом, указание «PublishProfile = Development» не выбирает конфигурацию сборки, которую мы выбираем для этого профиля публикации в Visual Studio? -Это делает Web.config правильно преобразовывается. - О! Он преобразует Web.config с помощью Web.Debug.config! –
@HansPassant: задано задание конфигурации сборки. Если вы опубликуете это как ответ, я дам ему +1 и отметьте его как ответ. :) Благодаря! –