Каков наилучший способ создания развертываний ClickOnce? - PullRequest
13 голосов
/ 21 августа 2008

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

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

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

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

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

Ответы [ 2 ]

14 голосов
/ 21 августа 2008

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

Вот подробный пост о том, как генерация манифеста ClickOnce работает с MsBuild.

5 голосов
/ 21 августа 2008

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

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

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

...