2015-11-05 2 views
3

Мне просто нужно установить несколько экземпляров моего приложения, сохраняя их в разных папках без ярлыка на рабочем столе. Другими словами, если приложение уже установлено в папке, если я снова дважды щелкнул файл .msi, установщик не должен спрашивать меня, хочу ли я восстановить или удалить свое приложение, но он просто должен разрешить установку это в новой папке. Как я могу решить эту проблему?Установка нескольких экземпляров приложения с помощью набора инструментов Wix

ответ

2

Что вы просите, это не нормально в Windows. Обычно каждая программа (продукт) устанавливается только один раз. То есть каждый установочный пакет имеет свой идентификатор (называемый «ProductID»). Если этот идентификатор уже зарегистрирован в системе как установленный, система не позволит вам установить второй продукт с тем же ProductID, но начните смены/удаления.

Что вы можете сделать:

  • Не использовать Windows Installer (и WIX), использовать ZIP, например, или какой-самораспаковывающийся архив или другую программу, которая не регистрирует установленного продукта в система.
  • Используйте командную строку для изменения идентификатора продукта перед установкой, если вы хотите, чтобы MSI и установщик Windows по какой-либо причине. Попробуйте googling на «использовать преобразования, чтобы установить один и тот же MSI несколько раз». Таким образом, вы можете иметь одну и ту же MSI для каждого преобразования перед установкой, чтобы она выглядела как другая для системы.
  • Установка для каждого пользователя, если это достаточно хорошо для вас (т.е. не устанавливать в Program Files, установите в папку пользователя)
  • Может быть, есть и другие варианты ...
4

Я работал с такими установками раньше, и я согласен с @Nikolay - это скорее исключение, чем правило, когда дело доходит до установок на установщике Windows. Component rules часто сложны, и аспект нескольких экземпляров добавляет некоторую сложность сверху. Итак, подумайте дважды, прежде чем идти по этой дороге.

Будучи сложным, это все еще возможно. Несколько лет назад я опубликовал the article of how to start authoring multiple instance installations с WiX 3.6. Обратите внимание, что эта версия WiX значительно упрощает ее. Это не краткое чтение, так что вот краткое описание:

  • Вы не сможете выполнить «установить каждый новый экземпляр с двойным щелчком мыши по файлу MSI». У вас должен быть bootstrapper - то, что передает правильные параметры командной строки до msiexec.exe.
  • Не пытайтесь поддерживать неограниченное количество экземпляров - старайтесь придерживаться достаточно большого количества. Представляете ли вы, что кто-то установил ваше приложение 10 раз на машине? 50? 100? Сделайте разумный выбор - это будет номер ваших <Instance/> элементов.
  • Хотя вам нужно только украсить не файловые данные с атрибутом MultiInstance, я не думаю, что он сломается, если вы добавите его ко всем вашим компонентам.
  • Хотя я объяснил исправление нескольких экземпляров в этом сообщении, я бы использовал его только в производстве, если у меня не было другого выбора.
Смежные вопросы