WiX - проверьте предыдущую установку - PullRequest
3 голосов
/ 01 апреля 2009

У меня есть устаревшее приложение, которое устанавливается прямо на диск пользователя c: в каталоге (например, c: \ MyApp). Противные вещи. Проблема заключается в том, что пользователь может указать, чтобы иметь вторую установку на втором диске (например, e: \ MyApp), и они могут иметь две разные версии приложения, установленные одновременно в любом каталоге. Они также могут установить приложение в другом месте дерева каталогов, но это два наиболее распространенных местоположения.

Я не писал эту схему. Насколько я понимаю, это заставляет младенца Иисуса плакать.

Мне нужно написать установщик, чтобы добавить модуль к этой схеме, и пользователь должен иметь возможность выбрать, на какую установку он хочет установить модуль. Я думал, что попробую это в WiX.

Как мне это сделать?

Я собирался сделать поиск в каталоге, как

<Property Id="MyAppInstallationSearch">
  <DirectorySearch Id="MyAppDirectory" Path="C:\MyApp">
  </DirectorySearch>
</Property>

и затем:

<Directory Id="TARGETDIR" Name="MyAppInstallationSearch">
    <Directory Id="INSTALLLOCATION" Name="AdditionalTools">
    </Directory>
</Directory>

чтобы иметь место установки.

Так как же мне:

  1. Сделать этот поиск относительным, а не абсолютным? (в документации указано, что это можно сделать, я просто не понимаю, как).

  2. Если у пользователя несколько местоположений, укажите ему, какую установку использовать?

Ответы [ 2 ]

1 голос
/ 02 апреля 2009
  1. Это будет относительное значение, AdditionalTools будет находиться в папке, найденной MyAppInstallationSearch.
  2. Это будет связано с созданием пользовательского интерфейса, что непросто в Wix, есть продукты, которые могут создавать выходные данные Wix или WixEdit . Вам нужно будет выполнить поиск в каталоге по всем возможным местам и показать пользовательские переключатели (каждая из которых привязана к результатам поиска), чтобы выбрать место установки нового продукта.
0 голосов
/ 28 июля 2009

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

Я не знаю, какой язык программирования вы используете, но если вы хотите использовать .NET, вы можете использовать Development Tools Foundation, включенный в Wix3. Библиотеки можно найти в папке SDK вашей установки Wix (в основном вам понадобится Microsoft.Deployment.WindowsInstaller.dll), документация находится в DTF.chm в каталоге doc. Вам также понадобится загрузчик для установки .NET Framework.

Вы также можете подождать до Wix 3.5, который будет включать Burn, загрузчик и внешний обработчик пользовательского интерфейса, который вы можете легко настроить.

НТН

...