Обычно, когда я использую ClickOnce, когда я создаю программу VB.NET, у нее есть несколько недостатков. Я никогда не использовал ничего другого, поэтому я не уверен, какие у меня есть варианты.
Недостатки ClickOnce:
- Состоит из нескольких файлов. Кажется, проще распространять один файл, чем управлять кучей файлов и загрузчиком для загрузки этих файлов.
- Вы должны собрать его заново для установки на CD (когда у конечного пользователя нет Интернета)
- Программа не попадает в программные файлы - она оказывается скрытой в какой-то папке перехвата приложения, что затрудняет ее ярлык.
Плюсы для ClickOnce:
- Оно работает. Волшебно. И это встроено в VisualStudio 2008 Express.
- Упрощает обновление приложения.
Установщик Windows также делает эти вещи? Я знаю, что у него нет никаких минусов ClickOnce, но было бы неплохо узнать, есть ли у него также и плюсы ClickOnce.
Обновление : я закончил тем, что использовал Wix 2 (Wix 3 был доступен, но в то время, когда я делал проект, ни у кого не было компетентного учебника). Это было приятно, потому что он поддерживал три вещи, которые мне (в конце концов) были нужны. Необязательный ярлык «запуск с окнами», опция «запуск при установке завершена» и три абзаца текста, которые, как думает мой босс, не позволит использовать неправильный вариант.
Вы уже видели WiX?
Он создает установщики Windows с использованием XML-файла и имеет дополнительные библиотеки, которые можно использовать, если вы хотите представить свои установщики и тому подобное. Я признаю, что кривая обучения для меня была средней на начальном этапе, но потом я смог создать второй установщик без каких-либо проблем.
Он будет обрабатывать обновления и другие элементы, если вы того пожелаете, и вы можете применять разрешения для папок и т.п. к установщикам. Это также дает вам больший контроль над тем, куда именно вы хотите установить файлы, и совместимо со всеми стандартными соглашениями о папках Windows, так что вы можете указать «PROGRAM_DATA» или что-то в этом роде, и установщик знает, как поместить его в C: \ Documents и Настройки \ Все пользователи \ Данные приложения или C: \ ProgramData в зависимости от того, используете ли вы XP или Vista.
Ходят слухи, что Office 2007 и Visual Studio 2008 использовали WiX для создания своего установщика, но я нигде не смог это проверить. Я верю, что это разработано некоторыми людьми Microsoft изнутри.
Создание проекта установщика с зависимостью от вашего EXE-файла (который, в свою очередь, зависит от того, что ему нужно) - довольно простой процесс, но для этого вам потребуется как минимум VS Standard Edition.
Внутри проекта установщика вы можете создавать собственные задачи и диалоговые шаги, которые позволяют вам делать все, что вы кодируете.
Чего не хватает, так это волшебства автоматического обновления и проверки версий, которое вы получаете с ClickOnce. Вы все еще можете встроить его, он просто не автоматический.
Я не верю, что есть какой-то простой способ заставить проект установщика Windows иметь простоту или возможность обновления ClickOnce. Я использую ClickOnce для всех внутренних приложений .NET, которые я разрабатываю (за исключением консольных приложений). Я считаю, что в корпоративной среде простота развертывания перевешивает отсутствие гибкости.
ClickOnce может быть проблематичным, если у вас есть сторонние компоненты, которые необходимо установить вместе с вашим продуктом. Вы можете обойти это в некоторой степени, создав установщики для компонентов, однако при развертывании ClickOnce необходимо создать логику для обновления указанных установщиков компонентов.
В прошлой жизни я использовал Wise For Windows Installer для создания установочных пакетов. Хотя создание обновлений с ним не было автоматическим, как у ClickOnce, они были более точными и меньше вызывали головную боль, когда речь шла о других компонентах, которые необходимо было зарегистрировать / добавить.
Я согласен с Джозефом, мой опыт работы с ClickOnce отлично подходит для подавляющего большинства проектов, особенно в корпоративной среде, где он облегчает сборку, публикацию и развертывание. Реализовать «принудительное обновление», чтобы гарантировать, что пользователи имеют последнюю версию при запуске, намного проще в ClickOnce, и это является основной причиной для ее использования.
Проблемы с ClickOnce: В корпоративной среде есть проблемы с прокси-серверами, и обходные пути не идеальны. Мне пришлось развернуть несколько приложений в тех случаях с путей UNC ... но вы не можете делать это все время. Его «песочница» хороша, пока вы не захотите найти исполняемый файл или создать ярлык на рабочем столе.
Еще не развернуто с 2008 года, поэтому не уверен, что эти проблемы все еще существуют.