Автоматическая установка исполняемых библиотек с WiX - PullRequest
4 голосов
/ 16 мая 2011

Когда мой набор файлов включает в себя библиотеки DLL с одной или несколькими зависимостями от библиотек времени выполнения C ++, мне нужно установить файл из VCRedist.exe. Это может быть сложно, поскольку каждая DLL зависит от конкретной версии среды выполнения C ++.

  • Как автоматически добавить распространяемые файлы времени выполнения в мой установщик?

  • Как мне обращаться с библиотеками DLL, которым требуются разные версии среды выполнения C ++ в WinSxS?

Ответы [ 3 ]

1 голос
/ 16 мая 2011

Вам необходимо установить последнюю версию (самую высокую) версию, требуемую для ваших библиотек, и файл политики, который перенаправляет более старые версии в новую версию.

Вы можете сделать оба с модулями слияния, установленными с Visual Studio. Они обычно находятся в C:\Program Files\Common Files\Merge Modules. См. Элемент MergeRef и пример , как установить распространяемый Visual C ++ вместе с вашим установщиком . Вам также необходимо добавить модуль слияния политики в вашу установку.

0 голосов
/ 30 мая 2011

Ни жара, ни Votive не поддерживают запрашиваемую функцию. DLL-библиотеки времени выполнения должны быть добавлены вручную.

0 голосов
/ 16 мая 2011

Вы можете просто убедиться, что установлена ​​последняя версия vcredist, она автоматически включает поддержку более старых версий.

Я думаю, что проще всего использовать bootstrapper для установки среды выполнения до запуска вашего установщика. Возможно, вам придется создать свой собственный пакет, но для этого просто использовать Bootstrapper Manifest Generator .

В product.xml вы можете добавить проверку установки, чтобы убедиться, что она не установлена ​​дважды, например:

  <InstallChecks>
    <MsiProductCheck Property="VCRedistInstalled" Product="{1F1C2DFC-2D24-3E06-BCB8-725134ADF989}"/>
  </InstallChecks>

См. здесь для других GUID.

...