CIX — пользовательское действие WIX: используйте dllimport

У меня есть установщик WiX и проект Custom Actions. Я добавил библиотеку C # в качестве ссылки на проект Custom action. Эта C # dll использует DllImport для одной C ++ dll. При установке я получаю сообщение об ошибке: не могу загрузить DLL mycpp.dll : указанный модуль не найден. я добавил mycpp.dll в проект CA и попытался использовать свойства: встроенный ресурс, скопировать в выходной каталог — но безрезультатно. Как я могу найти мой установщик найти mycpp.dll?

0

Решение

У меня была эта проблема раньше. Прочитав файлы MSBuild для wix, я в конце концов нашел свойство, которое используется в качестве списка для dll, необходимых в самораспаковывающемся пакете, который содержит dll с настраиваемым действием.

в wix.ca.targets (в папке sdk) есть свойство CustomActionContents, которое используется при запуске makefxca.

Вот комментарий к этому набору целей msbuild, которые упаковывают ваши dll пользовательских действий.

<!--
==================================================================================================
PackCustomAction

Creates an MSI managed custom action package that includes the custom action assembly,
local assembly dependencies, and project content files.

[IN]
@(IntermediateAssembly) - Managed custom action assembly.
@(Content) - Project items of type Content will be included in the package.
$(CustomActionContents) - Optional space-delimited list of additional files to include.

[OUT]
$(IntermediateOutputPath)$(TargetCAFileName) - Managed custom action package with unmanaged stub.
==================================================================================================
-->

а также

<!--
Items to include in the CA package:
- Reference assemblies marked CopyLocal
- Project items of type Content
- Additional items in the CustomActionContents property
-->

Таким образом, похоже, что вы можете пометить вашу ссылку на mycpp.dll как локальную копию, и она будет автоматически выбрана, или вы можете добавить новое свойство в свой проект настраиваемого действия (возможно, отредактировать csproj и добавить свойство), которое содержит путь в DLL, и он будет поднят.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector