Как создать Windows Installer

По сути, мы выпускаем наши изменения / исправления в виде ручного установщика (сценарий Windows PowerShell). Он установит указанные файлы DLL и сценариев SQL в определенных местах, прочитав значения файла конфигурации (в этом файле мы настроим местоположения сценариев DLL и Sql). В этом же скрипте powershell есть код деинсталляции для отката определенного набора изменений.

Есть ли какой-либо вариант или механизм для создания установщика Windows для вышеуказанного требования?

6 ответов

Короткая версия: много ответов уже - я просто добавлю несколько ссылок на существующие ответы. Вот мой предыдущий короткий ответ по теме.

Более высокая "наглядность": приведенный выше ответ отличается более простым форматом со списком наиболее важных текущих средств развертывания. В спешке? Проверьте это, выбрал один. Ниже приведены подробности и дальнейшее "обсуждение".


Инструменты развертывания

Существует множество инструментов для создания различных файлов installers / setup.exe. Вот несколько ссылок на краткие описания большинства из них:

Я бы порекомендовал пойти на MSI. Какой конкретный инструмент использовать менее очевидно. В последнем разделе ниже приведены некоторые ссылки с описанием сильных и слабых сторон различных инструментов.


Почему стоит выбрать MSI?

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

Вкратце наиболее важными, конкретными преимуществами, вероятно, являются:

  1. Надежный бесшумный ход (стандартизированный и полностью подавляемый графический интерфейс)
  2. Неявно доступная деинсталляция (кошмар при работе с устаревшими установками)
  3. Прозрачность (полупрозрачный и проверяемый характер установщика - кроме скомпилированных ЦС)
  4. Повышенные права на установку (без временных прав администратора)
  5. Стандартизированная командная строка (без "секретных" ключей)
  6. Административная установка (извлечение файла - необходимо для корпоративной переупаковки)
  7. Подробное ведение журнала (действительно полезно и многословно:-))
  8. Стандартизированная настройка пакетов (трансформации - фрагменты базы данных)
  9. Поддержка отката (может отменить изменения при неудачной установке)
  10. Инвентаризация (управление и отчетность: полная регистрация того, что установлено и где)

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

Многие находят, что с технологией сложно иметь дело - есть некоторые распространенные подводные камни (и я написал очень странное, специальное описание некоторых антишаблонов MSI здесь внизу - вне контекста вопроса, но иногда это так - иногда вещи пишутся в тот момент, к удивлению того, кто пишет тоже - это здорово, просто прагматичные подробности. То же самое и с первой ссылкой).

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

На тот же вопрос о сбое сервера есть второй ответ, описывающий типичные ошибки проектирования в файлах MSI. Действительно грязная "мозговая свалка".


MSIX / AppX

Я должен отметить, что новой платформой для упаковки от Microsoft сейчас является MSIX, основанная на платформе приложений AppX. Однако MSI имеет высокий уровень проникновения в мире корпоративных развертываний, поэтому еще неизвестно, как долго MSI будет иметь значение. Все установленные средства развертывания работают для поддержки MSIX и AppX, а также других технологий развертывания (также виртуализации).


AppV

А в реальном корпоративном мире AppV (виртуализация приложений / потоковая передача приложений) превратилась в общее решение для развертывания (блог Тима Мангана).


Выбор инструмента MSI

Лидерами отрасли по созданию MSI обычно являются Advanced Installer, Installshield, PACE Suite и решение с открытым исходным кодом WiX (с его коммерческим отделением Firegiant), с которым вы, кажется, знакомы.

Я просто дам вам несколько ссылок на ранее написанные ответы с некоторыми мнениями и фактами в нескромной смеси об этих различных инструментах - это задумано как "лучшее усилие", чтобы помочь людям решить, какой инструмент им нужен, не утверждая, что он "правильный". ". Это всегда опасное начинание - многолетний опыт означает приобретенные знания, но также предвещает приобретенные вредные привычки и причуды. Каковы результаты честного мнения от недостатка профессионала, который может предложить только готовность помочь:

Я предпочитаю Inno Setup, потому что он бесплатный, надежный и обладает необходимыми функциями.

http://www.jrsoftware.org/isinfo.php

https://www.codeproject.com/Tips/105638/A-quick-introduction-Create-an-MSI-installer-with

Попробуйте это, это использовать проект wix, мы также используем его в нашей компании. Помните, что вам понадобится плагин wix для компиляции проекта. Это бесплатно и легко в использовании. Я могу помочь вам, если у вас есть какие-то проблемы в конфигурации.

Существуют также платные инструменты, такие как Advanced Installer (от Caphyon) и InstallShield (от Flexera), которые вы можете использовать для создания пакета MSI. Их главное преимущество заключается в том, что создать проект установщика довольно просто (настраивается с помощью дизайнеров пользовательского интерфейса), но большинство их функций платные.

Оформить заказ https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.MicrosoftVisualStudio2017InstallerProjects

Он основан на WIX, но легче и быстрее начать, особенно для небольших проектов.

Если вы хотите, чтобы инструмент помог вам, но все же хотите иметь скрипт, подобный Wix-Toolset, вы можете попробовать WixPie. С базовой версией вы можете создать msi или exe, а базовая версия бесплатна.

Другие вопросы по тегам