Как создать программу установки Windows

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

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

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

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


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

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

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


Зачем выбирать MSI?

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

Вкратце, наиболее важные, конкретные выгоды , вероятно:

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

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

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

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

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


MSIX / AppX

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


AppV

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


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

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

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

  • Какой установочный продукт использовать? InstallShield, WiX, Wise, Advanced Installer и т. Д. – субъективная попытка объективной оценки сильных и слабых сторон существующих продуктов развертывания.
  • Быстрый старт для WiX – беспорядочный ответ с предложениями о том, как попасть в поле с WiX, который был выше, чем обычно. Должно быть, это было полезно. Мне нравится образец стиля « hello world », на который я ссылаюсь, на codeproject, о котором говорили и другие.
  • Windows Installer и создание WiX (быстрый и неофициальный обзор того, как появился WiX и как он работает. Также часть «неизбежная сложность развертывания»).
  • Как я могу сравнить содержимое двух (или более) файлов MSI? (некоторая краткая информация о формате MSI, как проверять файлы MSI и извлекать и проверять содержимое в них с помощью бесплатных инструментов).
  • Как избежать общих недостатков дизайна в моем решении для развертывания WiX / MSI? (некоторые хорошо продуманные, но грязные советы о том, как избежать проблем в решении для развертывания на базе MSI).

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

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

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

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

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

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

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

  • Как регистрировать типы файлов / расширения с помощью установщика WiX?
  • Добавление пользовательских prerequsites в проект настройки визуальной студии
  • MSI register dll - самооценка считается вредной
  • Создание настройки приложения в visual studio 2013
  • Принуждение к обновлению файла, который был изменен во время начальной установки
  • Удаление с панели управления отличается от удаления из .msi
  • Приложение Wrap C # в установщике .msi
  • Как включить wxi-файл в wxs?
  • Установщик Windows удаляет файл с версией во время обновления продукта, вместо того, чтобы понижать его
  • Что мне делать при запуске приложения триггеров, повторяющих бесконечный самозапуск установщика Windows?
  • Установщик WiX msi не устанавливает приложение Winform, созданное с помощью Visual Studio 2017
  • Давайте будем гением компьютера.