Как лучше всего развернуть приложение VB.NET?

Обычно, когда я использую ClickOnce при создании программы VB.NET, но у нее есть несколько недостатков. Я никогда особо ничего не использовал, поэтому не знаю, какие у меня есть варианты.

Недостатки ClickOnce:

  • Состоит из нескольких файлов - кажется, проще распространить один файл, чем управлять группой файлов и загрузчиком для загрузки этих файлов.
  • Вам нужно создать его снова для установки с компакт-диска (когда у конечного пользователя нет Интернета)
  • Программа не попадает в Program Files - она ​​оказывается спрятанной в какой-то папке улова приложения, что значительно затрудняет переход к ней.

Плюсы ClickOnce:

  • Оно работает. Волшебно. И он встроен в VisualStudio 2008 Express.
  • Облегчает обновление приложения.

Установщик Windows делает то же самое? Я знаю, что у него нет никаких минусов ClickOnce, но было бы неплохо узнать, есть ли у него также плюсы ClickOnce.

Обновление : в итоге я использовал Wix 2 (Wix 3 был доступен, но в то время, когда я работал над проектом, ни у кого не было компетентного руководства). Это было приятно, потому что поддерживало три вещи, которые мне (в конце концов) понадобились. Необязательный ярлык запуска с окнами, опция запуска, когда установщик завершит работу, и три абзаца текста, которые, по мнению моего начальника, не позволят использовать неправильный вариант.

Ответов (5)

Решение

Have you seen WiX yet?

http://wix.sourceforge.net/

It builds windows installers using an XML file and has additional libraries to use if you want to fancify your installers and the like. I'll admit the learning curve for me was medium-high in getting things started, but afterwards I was able to build a second installer without any hassles.

It will handle updates and other items if you so desire, and you can apply folder permissions and the like to the installers. It also gives you greater control on where exactly you want to install files and is compatible with all the standardized Windows folder conventions, so you can specify "PROGRAM_DATA" or something to that effect and the installer knows to put it in C:\Documents and Settings\All Users\Application Data or C:\ProgramData depending on if you're running XP or Vista.

Ходят слухи, что Office 2007 и Visual Studio 2008 использовали WiX для создания своего установщика, но мне нигде не удалось это проверить. Я верю, что он разработан некоторыми людьми из Microsoft.

Я не верю, что есть какой-либо простой способ сделать проект установщика Windows легким или обновляемым, как ClickOnce. Я использую ClickOnce для всех разрабатываемых мной внутренних приложений .NET (за исключением консольных приложений). Я считаю, что в корпоративной среде простота развертывания перевешивает отсутствие гибкости.

Создание проекта установщика с зависимостью от вашего EXE (который, в свою очередь, зависит от того, что ему нужно) - довольно простой процесс, но для этого вам понадобится как минимум VS Standard Edition.

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

Чего не хватает, так это волшебства автоматического обновления и проверки версий, которое вы получаете с ClickOnce. Вы все еще можете встроить его, просто это не автоматически.

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

В прошлой жизни я использовал установщик Wise For Windows для создания установочных пакетов. Хотя создание обновлений с его помощью не было автоматическим, как ClickOnce, они были более точными и вызывали меньше головной боли, когда дело касалось других компонентов, которые необходимо было зарегистрировать / добавить.

Я согласен с Джозефом, мой опыт работы с ClickOnce отлично подходит для подавляющего большинства проектов, особенно в корпоративной среде, где он упрощает сборку, публикацию и развертывание. Внедрение «принудительного обновления» для обеспечения пользователей последней версией во время работы в ClickOnce намного проще, и это основная причина, по которой я его использую.

Проблемы с ClickOnce: в корпоративной среде возникают проблемы с прокси-серверами, и обходные пути далеко не идеальны. В таких случаях мне приходилось развертывать несколько приложений по UNC-путям ... но вы не можете делать это все время. Его «песочница» хороша, пока вы не захотите найти исполняемый файл или создать ярлык на рабочем столе.

Еще не развернуты после 2008 года, поэтому не уверен, существуют ли эти проблемы.