2010-04-13 3 views
7

Я публикую приложение ClickOnce с VS2008, но перед каждым публикацией я должен переключиться на Release config вручную. Это прекрасно, насколько я не забываю переключаться. Есть ли способ предотвратить развертывание отладочных сборников? Есть ли какой-нибудь компилятор директивы, как:Запретить развертывание отладочной сборки с помощью ClickOnce

#if DEBUG 
#if ClickOnce 
#error You cannot publish a debug build 
#endif 
#endif 

Или есть способ (без сборки скриптов) для автоматического переключения Освободить конфигурации перед публикацией?

(я нашел несколько подобных вопросов, но не нравится anwsers на них)

Благодарности

+0

Не подсказывает ли вам, что * что-то не совпадает * и запрашивает подтверждение перед переопределением, когда вы пытаетесь опубликовать сборку отладки поверх сборки выпуска (без такого диалога при публикации правильной версии)? –

+0

Спасибо, но, к сожалению, нет такого диалога. – jomi

+0

related: http://stackoverflow.com/questions/47107/clickonce-disallow-publishing-of-debug-builds, который предоставляет ссылку на http://msdn.microsoft.com/en-us/library/ms164307.aspx – mbx

ответ

2

Не уверен, если это не одобряется, но смотрите мой ответ в соответствующей теме:

https://stackoverflow.com/a/15080048/571237

Короче говоря вы можете изменить файлы проекта для проверки отладочных символов перед публикацией, и бросок условие ошибки, если они найдены. Это предотвращает развертывание, не требуя каких-либо файлов .bat или внешней обработки.

+0

Спасибо, аддон работал отлично, но все должны были установить его. Теперь я могу использовать: jomi

0

К сожалению сказать вам это, но нет никакого способа сделать это. И jomi прав, вы получите диалог, если вы измените ключ подписи, но не измените конфигурацию сборки. Вам просто нужно уделять пристальное внимание при развертывании вашего продукта.

RobinDotNet
Посетите мой ClickOnce blog!

+0

+1 причина, почему блог потрясающий. Теперь у вас новый читатель. –

+0

Спасибо! У меня есть некоторые предстоящие записи в .NET 4.0 и ClickOnce. Надеюсь, они полезны! – RobinDotNet

+0

Thats wrong: это делает трюк: http://stackoverflow.com/questions/47107/clickonce-disallow-publishing-of-debug-builds/15080048#15080048 – schlamar

1

Лучшее решение, которое я нашел до сих пор, чтобы написать VS2008 надстройки на основе: http://msdn.microsoft.com/en-us/library/ms165638.aspx

public void OnPublishBegin(ref bool pubContinue) 
    { 
     if (pubContinue && _applicationObject.Solution.SolutionBuild.ActiveConfiguration.Name != "Release") 
     { 
      System.Windows.Forms.MessageBox.Show("You can only publish a Release build"); 
      pubContinue = false; 
     } 
    } 

Любые другие идеи приветствуются.

+0

Отличное предложение! Исправляет мою проблему и позволяет добавлять другие полезные функции. – Dan

Смежные вопросы