Загрузчик:Проверьте, установлена ли версия msi перед запуском

StackOverflow https://stackoverflow.com/questions/1884763

Вопрос

Я пытаюсь найти решение для следующей проблемы:

У меня есть множество программ (давайте назовем их ведомыми), которые все полагаются на одну программу (master).Мне нужно распространить установщик для каждого ведомого устройства.Этот установщик должен установить мастер.

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

Моя проблема в том, что если подчиненный установщик установит ту же версию ведущего, которая уже установлена, .msi будет работать в режиме восстановления / удаления.

Это неприемлемо с точки зрения пользователя и просто вызовет путаницу.

Есть ли какой-нибудь способ проверить версию установленных в данный момент полей, прежде чем пытаться запустить msi?

В настоящее время я использую WIX's setupbld.exe в качестве загрузчика.

Любые другие решения с благодарностью (я также пробовал объединить модули, но безуспешно, поскольку управление версиями бесполезно)

Это было полезно?

Решение

Вместо того, чтобы использовать setupbld.exe (чего я на самом деле не знаю, так как не могу найти никакой документации) вы можете использовать msbuild's задача generatebootstrapper сгенерировать загрузчик.Документация wix уже описывает, как использовать эту задачу для создания загрузчика, который устанавливает .NET framework.Видишь Как сделать:Установите .NET Framework с помощью загрузчика.При этом используются предопределенные пакеты bootstrapper.

Однако в этом случае вам также придется создавайте свои собственные пакеты bootstrapper.Один из способов сделать это - изучить существующие пакеты bootstrapper в C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\ (или те, что в Пакет SDK для Windows) и прочитайте документация XML-формата манифеста загрузчикагенератор начальной загрузки инструмент также может быть полезен.

Чтобы определить, нужно ли устанавливать пакет, вы можете использовать один из Проверки установки чтобы задать свойство, а затем проверить значение свойства в InstallCondition под Команды элемент.

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

  • плохо названный Установщик dotNetInstaller который на самом деле является генератором начальной загрузки общего назначения .
  • в wix 3.5 горит загрузчик, который еще не выпущен.Я не уверен, что он еще в пригодном для использования состоянии.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top