2008-09-05 3 views
16

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

Я только хочу разрешить создание релиза, но прямо сейчас человеческая ошибка вызывает проскальзывание сборки отладки через некоторое время.

Мы публикуем сборку из Visual Studio.

ответ

5

Одна вещь, которую вы можете сделать, это добавить условие к файлу .csproj или .vbproj, который MSBuild проверит при выполнении сборки.

Условие будет проверять, существует ли публикация, и проверить, является ли сборка сборкой отладки, затем выполнить что-то вроде запуска внешнего инструмента или иным образом прервать процесс сборки или привести к сбою.

Примером может быть что-то вроде этого:

<Choose> 
    <When Condition=" '$(Configuration)'=='Debug' "> 
     <Exec Command="C:\foo.bat" ContinueOnError="false" /> 
    </When> 
</Choose> 

Где foo.bat является пакетный файл, который возвращают ненулевое, тем самым останавливая публиковать возникновения.

+1

Не могли бы вы привести пример? – 2010-03-16 12:52:18

+0

Взгляните на условные примеры MSBuild: http://msdn.microsoft.com/en-us/library/ms164307.aspx – 2010-11-02 15:41:40

3

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

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

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

42

Я начал изменять файлы .csproj включить следующий код вызовет ошибку для отладки разворачивает, эффективно предотвращая Deploy от происходящего:

<!-- 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)