#c# #azure-devops
#c# #azure-devops
Вопрос:
Я использую #if DEBUG, и когда я использую Azure Devops для сборки и развертывания, он по-прежнему развертывается в режиме отладки, а не в режиме выпуска, хотя в нем указано, что конфигурация сборки является release . Что я делаю не так? Я не так опытен в этой области, поэтому я с радостью отредактирую / обновлю этот вопрос, чтобы сделать его более понятным, поскольку я уверен, что мне нужно добавить больше деталей, но не уверен, что мне нужно добавить.
ETA: переменные задачи для каждого запроса
Комментарии:
1. То, что у вас есть набор переменных, не означает, что на каком бы этапе компиляции ваш код не использовался. Используете ли вы
$(BuildConfiguration)
переменную на этом шаге?2. Можете ли вы показать задачу, которая фактически создает код?
3. @gunr2171 Я думаю, что это ответ. Я добавил «release» в конфигурацию, и, похоже, это работает, и игнорируйте мой #if ОТЛАДОЧНЫЙ код. Если вы опубликуете свой ответ здесь в качестве ответа, я отмечу его правильным.
Ответ №1:
Одной настройки переменных времени сборки недостаточно, чтобы задача конвейера выполнялась так, как вы хотите. Если у задачи нет какой-либо скрытой функциональности (чего обычно у них нет), вам необходимо явно использовать переменную в вашей задаче.
Переменные, такие как ваша BuildConfiguration
переменная, имеют произвольные имена. Это означает, что вам нужно быть явным в использовании переменной.
В обведенной области здесь:
Либо жестко запрограммируйте конфигурацию, которую вы хотите использовать ( Release
или Debug
), либо используйте синтаксис переменной для использования значения переменной.
$(BuildConfiguration)
Примечание: вам нужно убедиться, что вы используете «Release» или «Debug» с заглавной начальной буквы. Если вы когда-нибудь перейдете на Linux, компиляция с использованием «release», а не «Release», приведет к тому, что у вас будут другие имена папок, чем вы ожидаете, а поскольку файловая система Linux чувствительна к регистру, это может привести к ошибкам в вашем конвейере.