WIX 自定义操作执行失败
Posted
技术标签:
【中文标题】WIX 自定义操作执行失败【英文标题】:WIX Custom Action Execution failed 【发布时间】:2013-07-09 06:40:40 【问题描述】:我创建了一个设置来在数据库上执行脚本。但是当我尝试运行设置时,我收到了以下错误,我从日志中提取了该错误。
Doing action: VerifyConnection Action 12:03:17: VerifyConnection.
Action start 12:03:17: VerifyConnection. MSI (c) (38:E0)
[12:03:17:739]: Invoking remote custom action. DLL: C:\Users\adityak\AppData\Local\Temp\MSI4F99.tmp, Entrypoint: VerifyConnection MSI (c) (38:A4) [12:03:17:741]: Cloaking enabled. MSI (c) (38:A4)
[12:03:17:741]: Attempting to enable all disabled privileges before calling Install on Server MSI (c) (38:A4)
[12:03:17:742]: Connected to service for CA interface. MSI (c) (38:54)
[12:03:17:788]: Note: 1: 1723 2: VerifyConnection 3: VerifyConnection 4: C:\Users\adityak\AppData\Local\Temp\MSI4F99.tmp Error 1723. There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. Action VerifyConnection, entry: VerifyConnection, library: C:\Users\adityak\AppData\Local\Temp\MSI4F99.tmp MSI (c) (38:54)
[12:03:19:186]: Product: CRMnext -- Error 1723. There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. Action VerifyConnection, entry: VerifyConnection, library: C:\Users\adityak\AppData\Local\Temp\MSI4F99.tmp
Action ended 12:03:19: VerifyConnection. Return value 3.
DEBUG: Error 2896: Executing action VerifyConnection failed
任何想法如何解决这个问题???
【问题讨论】:
根据错误消息“无法运行完成此安装所需的 DLL。”你有没有试过找到这里提到的 DLL? 我在我的自定义操作项目的构建后事件中使用了一个使用 makeSFxCA.exe 的 dll 包。在调用 VerifyConnection 操作时,它需要的 dll 可能不可用。 【参考方案1】:-
确保您的操作具有正确的签名;特别是该方法需要是“公共的”和“静态的”,即类似于“公共静态 ActionResult doSomething(Session session)”的东西
使用“CustomAction”属性标记方法,以便导出
在处理在一个 dll 中实现的多个自定义操作时,请确保您没有遇到已知的 MakeSfxCA 错误(参见 http://wixtoolset.org/issues/4502/ 或 Adding a new Custom Action to a project prevents an existing Custom Action from being run)
【讨论】:
以上是关于WIX 自定义操作执行失败的主要内容,如果未能解决你的问题,请参考以下文章