2016-02-09 3 views
4

Прежде всего, извинения за запутанные скриншоты и не включая полные имена в коде.Wix Возврат ошибки «Нет точек доступа CA или UI, найденных в модуле», но [CustomAction] используется в dll

У меня возникли проблемы с попыткой использования пользовательских действий из dll с использованием Wix Framework.

Я использую Wix 3.10.2

У меня есть проект C# пользовательских действий в соответствии с моим решением под названием Install.CustomAction. Затем это делается в главном проекте Wix. Вы можете видеть, что здесь

enter image description here

Я ссылается на 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-файлах, но, похоже, не работает для меня.

Благодаря

ответ

4

Я думаю, что это должно быть:

общественности статической ActionResult .........

+0

Это ответил на мой вопрос совершенно спасибо! PhilDW – martpendle

+3

Да и FWIW * класс * также должен быть общедоступным. Я предполагаю, что это изменилось в какой-то момент эволюции WiX, потому что оно использовалось для работы с частными классами. –

Смежные вопросы