Azure Devops не встроен в конфигурацию выпуска

#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 чувствительна к регистру, это может привести к ошибкам в вашем конвейере.