Запретить публикацию отладочных сборок для развертывания ClickOnce.

StackOverflow https://stackoverflow.com/questions/47107

  •  09-06-2019
  •  | 
  •  

Вопрос

Есть ли способ запретить публикацию отладочных сборок с помощью 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)

Я выбрал другое решение, которое сработало для меня:

Я не мог изменить процесс сборки.Так я и сделал ИнструментыНастроить... и измените текст действия, добавив предупреждение типа «Опубликовать [НАСТРОЙКА ДЛЯ ВЫПУСКА!]» и разместив кнопку «Опубликовать» рядом с параметром конфигурации «Отладка/Выпуск».Это просто!

Благодаря этому я значительно снизил риск человеческой ошибки.Эти кнопки всегда должны быть вместе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top