Запретить развертывание отладочной сборки с помощью ClickOnce - PullRequest
10 голосов
/ 14 апреля 2010

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

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

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

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

Спасибо

Ответы [ 3 ]

3 голосов
/ 27 июня 2013

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

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

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

1 голос
/ 15 апреля 2010

Лучшее решение, которое я нашел на данный момент, - написать надстройку 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 голосов
/ 14 апреля 2010

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

RobinDotNet
Посетите мой блог ClickOnce!

...