Это может быть немного более напыщенным, чем ответ, но здесь он идет.
Если в клиентском программном обеспечении Windows есть одна проблема, это развертывание приложений.
Мой опыт работы с NovaMind - Несмотря на то, что я потратил несколько недель на решение проблем с настройкой, я ни в коем случае не эксперт по технологии настройки , и я стараюсь сосредоточьтесь на нашем актуальном продукте, когда это возможно. Мы использовали InnoSetup, Visual Studio Setup Project 2008/2010 и, наконец, перешли к подходу WiX + Tools.
Как установить приложение в настоящее время?
Веб-приложения : введите URL-адрес в браузере для доступа к веб-приложению.
Mac: Перетащите загруженный файл (то же самое для x64 и x86) на значок «Приложения» на Mac. Готово.
Windows: Загрузите нужный файл (пользователь должен знать архитектуру x64 и x86), запустите его. Нажмите «Далее» несколько раз, подождите, пока появится UAC, нажмите «Да», а затем надейтесь, что установщик поступил правильно.
Я думаю, что если бы у Windows была лучшая система развертывания, нормальный рынок / магазин приложений и надлежащая функция обновления в реальном времени, веб-приложения, возможно, никогда бы не стали такими популярными. Конечно, это преувеличение, но я полагаю, что экосистеме приложений Windows был нанесен большой ущерб из-за отсутствия разумной и удобной модели развертывания, и даже сейчас Microsoft, похоже, уделяет очень мало внимания этой проблеме.
Как вы обновляете приложения в настоящее время?
Веб-приложения: Нет необходимости. Это актуально.
Mac: Нет встроенной магии, но есть широко используемое и мощное решение под названием Sparkle.
Windows: Вам лучше свернуть свое, потому что там нет ничего существенного.
ClickOnce должен был изменить все это, но его нельзя было использовать в реальных коммерческих приложениях.
Вот краткое изложение:
InnoSetup и другие сценарии установки просты, но не могут создать файл .msi & mdash; Некоторые компании требуют MSI-файлы для автоматизации развертывания сети. Вам также понадобится установка на основе установщика Windows (.msi), если вы хотите получить сертификат Windows Logo.
Visual Studio Setup Project 2008/2010 предоставляет базовые сведения, и вы можете настроить множество вещей, но если вы хотите сделать немыслимое, как , используйте высококачественный значок или включите изменяющийся набор файлов в вашу настройку, вы облажались Нам также приходилось вручную исправлять PackageCode и ProductCode каждый раз, когда мы создавали обновление, поскольку Visual Studio каким-то образом могла испортить версии сборок и при обновлении оставляла более старую сборку, что приводило к повреждению приложения.
WiX - это де-факто способ создания настроек в Windows, и даже Microsoft Office Setup предположительно создается с помощью WiX. WiX не прост. Есть книги для WiX!
К сожалению, один только WiX все еще не является хорошим решением. Мы используем проект загрузчика dotNetInstaller , чтобы убедиться, что установлен .NET Framework, и обернуть файл .msi и загрузчик в один файл .exe, который можно загрузить.
Со всем этим вы в основном в порядке. Всегда бывают странные случаи, когда клиенты не имеют установленного установщика Windows (и поэтому не могут запустить встроенный MSI-файл) или когда происходит сбой установки .NET Framework.
Вещи, которые мы не смогли сделать до сих пор:
- Локализация нашего установщика!
- Обеспечение единой загрузки для x64 и x86 - на данный момент мы создаем только установщик x86, потому что мы не хотим, чтобы наши пользователи думали о x64 против x86.
- есть никПользовательский интерфейс настройки, который также работает с высокими настройками DPI. Я думаю, что это может быть просто не поддерживается в настройке MSI.
Существует бесплатный продукт под названием SharpSetup , который, кажется, решает некоторые из этих проблем и позволяет вам написать пользовательский интерфейс на основе Winforms, но SharpSetup не поставляется с загрузчиком и требует .NET Framework - вы однако вы можете написать свой собственный код C ++, чтобы реагировать в этой ситуации.
Для обновлений в режиме реального времени мы разработали собственное решение, и после многих проблем оно работает нормально.
Возможно, вы также захотите прослушать эпизод подкаста Скотта Хансельмана с Риком Брюстером , где они говорили о настройке и развертывании Paint.NET - пока я поздравляю Рика и команду Paint.NET с хорошей настройкой необходимость такого сложного решения огорчает меня.
Если вам абсолютно необходимо использовать .msi, я бы порекомендовал WiX всем, кто хочет создать установщик для Windows, но в итоге я крайне разочарован ситуацией развертывания в Windows. Я потратил впустую недели своего времени на глупые проблемы с настройкой. С настройкой вы можете только проиграть. Вы не выиграете ни одного счастливого клиента, потому что ваша установка работает, но вы потеряете и расстроите многих из них, если это не так.