Прежде всего, извинения за запутанные скриншоты и не включая полные имена в коде.Wix Возврат ошибки «Нет точек доступа CA или UI, найденных в модуле», но [CustomAction] используется в dll
У меня возникли проблемы с попыткой использования пользовательских действий из dll с использованием Wix Framework.
Я использую Wix 3.10.2
У меня есть проект C# пользовательских действий в соответствии с моим решением под названием Install.CustomAction. Затем это делается в главном проекте Wix. Вы можете видеть, что здесь
Я ссылается на DLL CA как двоичный в главном Product.wxs файл
<Binary Id="CustomActions.dll" SourceFile="$(var.<porjectname>.Install.CustomAction.TargetDir)<projectname>.CustomAction.CA.dll"/>
Сейчас в фрагменте У меня есть действия, на которые ссылается как этот
<CustomAction Id="CA_RestoreDB" BinaryKey="CustomActions.dll" DllEntry="RestoreMobileDB" Execute="immediate" Return="check" />
<InstallExecuteSequence>
<Custom Action="CA_RestoreDB" After="InstallFinalize"/>
</InstallExecuteSequence>
Так что, несмотря на это, я бы ожидал, что все будет работать.
В реальной C# файл называется CustomAction.cs я имею эту установку с [CustomAction] атрибут
[CustomAction]
public ActionResult RestoreMobileDB(Session session)
{
//string installPath = session.GetTargetPath(TARGETDIR);
string x = session["INSTALLFOLDER"];
session.Log("Begin CustomAction1");
doSomeStuff(x, session);
return ActionResult.Success;
}
Пока все выглядит хорошо и работает, как я woudl ожидал. Но когда я пришел, чтобы собрать все, что я получаю эту ошибку
Severity Code Description Project File Line Suppression State
Error The command ""C:\Program Files (x86)\WiX Toolset v3.10\bin\..\sdk\MakeSfxCA.exe" "C:\Work Files\Development\<product>\<solution>\<project>.Install.CustomAction\obj\x86\Release\<project>.Install.CustomAction.CA.dll" "C:\Program Files (x86)\WiX Toolset v3.10\bin\..\sdk\x86\SfxCA.dll" "C:\Work Files\Development\<product>\<solution>\<project>Install.CustomAction\obj\x86\Release\<project>.Install.CustomAction.dll" "C:\Program Files (x86)\WiX Toolset v3.10\SDK\Microsoft.Deployment.WindowsInstaller.dll;C:\Work Files\Development\<product>\<solution>\<project>.Install.CustomAction\CustomAction.config"" exited with code 1. <project>.Install.CustomAction
СЛЕДОВАЛИ Эта ошибка
No CA or UI entry points found in module
Есть ли у вас какие-либо идеи, что может быть причиной этого? Я указал точку входа и ссылался на dll в моих .wxs-файлах, но, похоже, не работает для меня.
Благодаря
Это ответил на мой вопрос совершенно спасибо! PhilDW – martpendle
Да и FWIW * класс * также должен быть общедоступным. Я предполагаю, что это изменилось в какой-то момент эволюции WiX, потому что оно использовалось для работы с частными классами. –