Сведения о вопросе

HEIGTH

22:48, 15th August, 2020

Теги

Каков наилучший способ создания развертываний ClickOnce

Просмотров: 469   Ответов: 2

Наша команда разрабатывает распределенные приложения winform. Мы используем ClickOnce для deployment и очень довольны этим.

Однако мы обнаружили, что болевая точка с ClickOnce заключается в создании развертываний. У нас есть стандартные среды dev/test/production, и мы должны иметь возможность создавать развертывания для каждого из них, которые устанавливают и обновляют отдельно друг от друга. Кроме того, мы хотим контролировать, какие сборки будут развернуты. Просто потому, что assembly был скомпилирован, не означает, что мы хотим его развернуть.

Очевидным первым выбором для создания развертываний является Visual Studio. Однако VS действительно не решает заявленные проблемы. Следующий на очереди-инструмент SDK, маг. Маг работает OK, но создание развертываний довольно утомительно, и мы не хотим, чтобы каждый разработчик имел наш сертификат подписи кода и пароль.

В итоге мы запустили наше собственное приложение deployment, которое использует версию командной строки Mage для создания файлов манифеста ClickOnce.

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



  Сведения об ответе

ITSME

20:28, 29th August, 2020

Я бы посмотрел на использование msbuild . Он имеет встроенные задачи для обработки развертываний clickonce. Я включил некоторые рекомендации, которые помогут вам начать работу, если вы хотите пойти по этому пути. Это то, что я использую, и я нашел его, чтобы соответствовать моим потребностям. При хорошем процессе сборки, использующем msbuild, вы должны быть в состоянии добиться подавления боли, которую вы почувствовали.

Вот подробный пост о том, как ClickOnce manifest generation работает с MsBuild.


  Сведения об ответе

ITSME

06:30, 14th August, 2020

Я использовал nAnt для запуска общей стратегии сборки, но передал параметры в MSBuild для компиляции и создания пакета deployment.

По сути, nAnt вызывает MSBuild для каждой среды, в которой необходимо выполнить развертывание, и генерирует отдельный вывод deployment для каждой среды. В итоге вы получаете папку и все необходимые файлы ClickOnce для каждой среды, которые вы можете просто скопировать на сервер.

Именно так мы работали с несколькими производственными средами - у нас были отдельные экземпляры нашего приложения для US, Канады и Европы, поэтому каждая сборка заканчивалась созданием девяти развертываний, по три для dev, qa и prod.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться