пользовательское действие wix отсутствует dll MSVCR100D.dll - PullRequest
1 голос
/ 06 марта 2012

Я пишу установщик, используя wix. Я также написал пользовательские действия. Но при установке MSI происходит сбой установки, поскольку целевая система не имеет MSVCR100D.dll

Я создаю ссылку, используя опцию /MTd, что я и рекомендовал для чтения статических ссылок в документах, которые я прочитал.

Может кто-нибудь сообщить мне, как связать msvcr100d.dll статически, чтобы, даже если msvcr100d.dll отсутствует в целевой системе, моя установка MSI прошла успешно?

Ответы [ 2 ]

5 голосов
/ 07 марта 2012

«D» в MSVCR100D.dll указывает на то, что ваша собственная библиотека пользовательских действий является отладочной DLL. Зависимость «D» не будет на целевой машине, если на них не установлены различные SDK. Пересоздайте свою DLL в выпуске, и зависимость изменится на MSVCR100.dll

Кроме того, поскольку вы используете WiX / Votive, существует тип проекта Visual Studio WiX C ++ CA, который создает проект для вас. По моему опыту, все настройки компилятора и компоновщика по умолчанию хороши для использования при использовании этого типа проекта.

0 голосов
/ 24 августа 2012

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

DLL-библиотеки отладки Visual Studio не подлежат распространению в соответствии с политикой Microsoft. Кроме того, очевидно, что 64-битная DLL, скомпилированная с Visual Studio 2010 с использованием / MTd (статическое связывание, отладочная конфигурация), создает выходные данные с зависимостью от MSVCR100D.dll. В конфигурации 64-разрядного выпуска, как и ожидалось, компиляция с / MT не приводит к зависимости от MSVCR100.dll.

Одним из решений является установка Visual Studio на целевой тестовой машине. Microsoft предлагает дополнительные предложения здесь.

...