Есть ли способ запретить публикацию отладочных сборников с помощью ClickOnce?
Я хочу только разрешить сборку релизов, но сейчас человеческая ошибка заставляет сборку отладки проскальзывать через некоторое время.
Мы публикуем сборку из Visual Studio.
Есть ли способ запретить публикацию отладочных сборников с помощью ClickOnce?
Я хочу только разрешить сборку релизов, но сейчас человеческая ошибка заставляет сборку отладки проскальзывать через некоторое время.
Мы публикуем сборку из Visual Studio.
Одна вещь, которую вы можете сделать, это добавить условие к файлу .csproj или .vbproj, который MSBuild проверит при выполнении сборки.
Условие будет проверять, происходит ли публикация, и проверить, является ли сборка сборкой отладки, затем выполнить что-то вроде запуска внешнего инструмента или иным образом прервать процесс сборки или привести к сбою.
Пример может выглядеть примерно так:
<Choose>
<When Condition=" '$(Configuration)'=='Debug' ">
<Exec Command="C:\foo.bat" ContinueOnError="false" />
</When>
</Choose>
Где foo.bat - пакетный файл, который возвращает ненулевое значение, тем самым останавливая публикацию.
Я начал изменять файлы .csproj, чтобы включить следующий код, чтобы выбросить ошибку для развертывания отладки, эффективно предотвращая развертывание:
<!-- The following makes sure we don’t try to publish a configuration that defines the DEBUG constant -->
<Target Name="BeforePublish">
<Error Condition="'$(DebugSymbols)' == 'true'" Text="You attempted to publish a configuration that defines the DEBUG constant!" />
</Target>
Просто поместите его в конец файла прямо перед тегом </Project>.
(исходный источник: http://www.nathanpjones.com/wp/2010/05/preventing-clickonce-publishing-a-debug-configuration/comment-page-1/#comment-625)
Я выбрал другое решение, которое сработало для меня:
Я не мог изменить свой процесс сборки. Итак, я сделал Tools → Customize... и изменил текст действия, добавив предупреждение типа "Опубликовать [КОНФИГУРАЦИЯ ДЛЯ РЕЛИЗА!]" И поместив кнопку "Опубликовать" рядом с параметром "Конфигурация отладки/выпуска". Это легко!
С этим я значительно уменьшил риск человеческой ошибки. Эти кнопки всегда должны быть вместе.