Бесплатный инструмент для создания единого установщика файлов из файла msi + config (это достаточно просто для использования конечным пользователем) - PullRequest
1 голос
/ 27 января 2010

Мой установщик требует наличия двух файлов в одном каталоге для установки.

  1. Установщик (MSI-файл)
  2. Конфигурационный файл для конкретной организации, который копирует установщик. (Этот файл настраивается организацией и затем распространяется среди ее конечных пользователей).

Поскольку существует два файла, этот файл необходимо распространять в виде zip-файла. Что создает проблему, если пользователь пытается запустить MSI без фактического извлечения ZIP-файла ... извлекается только MSI-файл. Я могу обнаружить проблему в процессе установки и сообщить пользователю, что ему нужно распаковать файл ... но вы знаете, как никто не читает сообщения об ошибках.

Итак, я хотел бы сделать его более надежным, и поэтому мне было интересно, есть ли простой инструмент, который я мог бы позволить своим клиентам (т.е. организации) иметь возможность вносить изменения в файл конфигурации и, когда закончил, создавать Файл .exe, который при нажатии извлекает во временную папку, а затем запускает msi. Я знаю, что для этого есть решения, которые требуют коммерческого программного обеспечения. Мне интересно, существует ли простой бесплатный инструмент, который может сделать это.

Редактировать: Принятые примечания к решению:

Единственная проблема, с которой я столкнулся, это то, что iexpress не был предназначен для использования с MSI-файлами. В результате на шаге, который запрашивает у вас программу установки. Это поле со списком, в котором, если вы добавили файл .exe на предыдущем шаге, можно было просто выбрать файл .exe. Вместо этого вы должны вручную ввести

 msiexec /i yourinstaller.msi

Мне было очень приятно найти такое простое решение, которое встроено в Windows. Единственный способ сделать это лучше - это разрешить использование подстановочных знаков, чтобы ваш проект iexpress мог обрабатывать изменения в имени файла MSI, которые происходят с каждой версией. И по умолчанию установить программу в MSI-файл. Эти незначительные неудобства компенсируются тем фактом, что конечному пользователю не нужно устанавливать какое-либо новое программное обеспечение для создания пакета, поэтому я перестал искать другие инструменты.

Ответы [ 3 ]

1 голос
/ 27 января 2010

Вы можете попробовать использовать iexpress .

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

Я полагаю, что это часть Windows (часть IE?) - попробуйте запустить iexpress.exe из диалогового окна запуска, чтобы получить пользовательский интерфейс.

0 голосов
/ 27 января 2010

Я предполагаю, что файл конфигурации является чем-то вроде файла свойств, и вы хотите, чтобы пользователи устанавливали значения свойств "foo" и "bar". Вам не нужен отдельный инструмент для обновления файла.

Я бы сделал это:

  • Поместите в установку один или несколько диалогов, которые спрашивают пользователя о том, какими должны быть значения foo и bar, и соответственно установите пару открытых свойств.

  • Напишите пользовательское действие, которое записывает файл конфигурации в любое место, которое вы хотите, включая любые значения, которые вы хотите для foo и bar. Это было бы довольно просто в VBScript.

  • Поместите пользовательское действие где-нибудь в последовательности выполнения (в идеале, в качестве отложенного действия при выполнении изменений в системе).

  • Добавить запись в таблицу RemoveFile, чтобы файл конфигурации удалялся при удалении (при условии, что вы не хотите, чтобы он оставался позади).

  • Добавьте запись в таблицу LaunchCondition, чтобы пользователи не могли выполнить установку без вывода сообщений. Или, если вы хотите разрешить установку без вывода сообщений, сделайте имена общедоступных свойств, которые содержат данные конфигурации, известными и сделайте их частью LaunchCondition. Вы бы заблокировали «msiexec / i myapp.msi», но вы можете разрешить «msiexec / i myapp.msi FOO = Something BAR = SomethingElse».

0 голосов
/ 27 января 2010

Проект Wix имеет загрузчик и упаковщик для работы с подобными вещами.

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

...