Как создать Windows Installer
По сути, мы выпускаем наши изменения / исправления в виде ручного установщика (сценарий Windows PowerShell). Он установит указанные файлы DLL и сценариев SQL в определенных местах, прочитав значения файла конфигурации (в этом файле мы настроим местоположения сценариев DLL и Sql). В этом же скрипте powershell есть код деинсталляции для отката определенного набора изменений.
Есть ли какой-либо вариант или механизм для создания установщика Windows для вышеуказанного требования?
6 ответов
Короткая версия: много ответов уже - я просто добавлю несколько ссылок на существующие ответы. Вот мой предыдущий короткий ответ по теме.
Более высокая "наглядность": приведенный выше ответ отличается более простым форматом со списком наиболее важных текущих средств развертывания. В спешке? Проверьте это, выбрал один. Ниже приведены подробности и дальнейшее "обсуждение".
Инструменты развертывания
Существует множество инструментов для создания различных файлов installers / setup.exe. Вот несколько ссылок на краткие описания большинства из них:
- Инструменты установки не из MSI: http://www.installsite.org/pages/en/tt_nonmsi.htm
- Инструменты установщика Windows: http://www.installsite.org/pages/en/msi/authoring.htm
- Инструменты Sys-admin для развертывания: http://www.installsite.org/pages/en/msi/admins.htm (для полноты, не очень актуально для вас)
- ОБНОВЛЕНИЕ: По теме многоплатформенных установщиков: существует ли универсальный кроссплатформенный установщик?
Я бы порекомендовал пойти на MSI. Какой конкретный инструмент использовать менее очевидно. В последнем разделе ниже приведены некоторые ссылки с описанием сильных и слабых сторон различных инструментов.
Почему стоит выбрать MSI?
MSI (установщик Windows) является стандартом для корпоративного развертывания, поскольку он предлагает ряд корпоративных преимуществ, имеющих большое значение по сравнению с предыдущими технологиями установки. Преимущества сосредоточены на надежном удаленном управлении и стандартизации - важнейших задачах корпоративного развертывания.
Вкратце наиболее важными, конкретными преимуществами, вероятно, являются:
- Надежный бесшумный ход (стандартизированный и полностью подавляемый графический интерфейс)
- Неявно доступная деинсталляция (кошмар при работе с устаревшими установками)
- Прозрачность (полупрозрачный и проверяемый характер установщика - кроме скомпилированных ЦС)
- Повышенные права на установку (без временных прав администратора)
- Стандартизированная командная строка (без "секретных" ключей)
- Административная установка (извлечение файла - необходимо для корпоративной переупаковки)
- Подробное ведение журнала (действительно полезно и многословно:-))
- Стандартизированная настройка пакетов (трансформации - фрагменты базы данных)
- Поддержка отката (может отменить изменения при неудачной установке)
- Инвентаризация (управление и отчетность: полная регистрация того, что установлено и где)
В целом это дает общее преимущество MSI: надежное удаленное управление развертыванием для занятых системных администраторов в крупных корпоративных средах. Важные преимущества, несмотря на сложность и причудливость технологии.
Многие находят, что с технологией сложно иметь дело - есть некоторые распространенные подводные камни (и я написал очень странное, специальное описание некоторых антишаблонов MSI здесь внизу - вне контекста вопроса, но иногда это так - иногда вещи пишутся в тот момент, к удивлению того, кто пишет тоже - это здорово, просто прагматичные подробности. То же самое и с первой ссылкой).
Связанный ответ о сбое сервера (выше и здесь) содержит гораздо более подробное описание этих корпоративных преимуществ MSI, а также некоторые проблемы, о которых необходимо знать.
На тот же вопрос о сбое сервера есть второй ответ, описывающий типичные ошибки проектирования в файлах MSI. Действительно грязная "мозговая свалка".
MSIX / AppX
Я должен отметить, что новой платформой для упаковки от Microsoft сейчас является MSIX, основанная на платформе приложений AppX. Однако MSI имеет высокий уровень проникновения в мире корпоративных развертываний, поэтому еще неизвестно, как долго MSI будет иметь значение. Все установленные средства развертывания работают для поддержки MSIX и AppX, а также других технологий развертывания (также виртуализации).
AppV
А в реальном корпоративном мире AppV (виртуализация приложений / потоковая передача приложений) превратилась в общее решение для развертывания (блог Тима Мангана).
Выбор инструмента MSI
Лидерами отрасли по созданию MSI обычно являются Advanced Installer, Installshield, PACE Suite и решение с открытым исходным кодом WiX (с его коммерческим отделением Firegiant), с которым вы, кажется, знакомы.
Я просто дам вам несколько ссылок на ранее написанные ответы с некоторыми мнениями и фактами в нескромной смеси об этих различных инструментах - это задумано как "лучшее усилие", чтобы помочь людям решить, какой инструмент им нужен, не утверждая, что он "правильный". ". Это всегда опасное начинание - многолетний опыт означает приобретенные знания, но также предвещает приобретенные вредные привычки и причуды. Каковы результаты честного мнения от недостатка профессионала, который может предложить только готовность помочь:
- Какой установочный продукт использовать? InstallShield, WiX, Wise, Advanced Installer и т. Д. - субъективная попытка объективной оценки сильных и слабых сторон установленных в настоящее время продуктов для развертывания.
- Быстрый старт для WiX - небольшой грязный ответ с предложениями о том, как начать работу с WiX, за который проголосовали чаще, чем обычно. Должно быть, это было полезно. Мне нравится пример стиля " hello world ", на который я ссылаюсь на codeproject, о котором упоминали и другие.
- Установщик Windows и создание WiX (быстрый и неофициальный обзор того, как появился WiX и как он работает. Также часть "неизбежной сложности развертывания").
- Как я могу сравнить содержимое двух (или более) файлов MSI? (некоторая краткая информация о формате MSI, о том, как проверять файлы MSI, извлекать и проверять содержимое в них, используя бесплатные инструменты).
- Как избежать типичных ошибок проектирования в моем решении по развертыванию WiX / MSI? (несколько благих советов о том, как избежать проблем в вашем решении для развертывания на основе MSI).
Я предпочитаю Inno Setup, потому что он бесплатный, надежный и обладает необходимыми функциями.
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, а базовая версия бесплатна.