【问题标题】:CustomAction failed-"Unable to load DLL 'SQLite.Interop.dll':The specified module could not be found.(ExceptionHRESULT: 0x8007007E)"CustomAction 失败-“无法加载 DLL 'SQLite.Interop.dll':找不到指定的模块。(ExceptionHRESULT:0x8007007E)”
【发布时间】:2019-12-24 23:18:26
【问题描述】:

我正在尝试通过自定义操作访问数据库。但是连接失败并显示消息“无法加载 DLL 'SQLite.Interop.dll':找不到指定的模块。(来自 HRESULT 的异常:0x8007007E )”。我想知道自定义操作在哪里查找 SQLite.Interop.dll,同时从自定义操作中连接到数据库。安装后 SQLite.Interop.dll 出现在我的安装文件夹中将其作为组件添加到 product.wxs 中。

【问题讨论】:

  • 我记得之前没有看过这个,但似乎有lots of previous questions about it。这是一个:Visual Studio C# - SQLite.Interop.dll not found,还有一个:Unable to load DLL 'SQLite.Interop.dll'
  • 感谢@SteinÅsmul,但我找不到上述问题的解决方案。因此,我改变了方法。现在,我在应用程序内部使用数据库而不是自定义操作。如果你找到解决方案,请更新我。
  • @SteinÅsmul,我已经使用 wix 工具集为应用程序构建了基本安装程序,并且在升级的情况下,我将版本从 1.0.0.0 更改为 2.0.0.0。但是,如果我对当前应用程序,较早安装的版本消失,第二个版本没有安装。我使用消失这个词是因为我已经在卸载第一个应用程序时安排了自定义操作,当我尝试安装新版本时,自定义操作不会被执行。但是我在控制面板中没有安装任何东西,并且我所有与应用程序相关的文件夹都被删除了
  • 我评论了我的自定义操作,它运行良好。但是如何使它与自定义操作一起使用?
  • 我找到了原因,更新无法与自定义操作一起使用,因为当我尝试安装更新时已安装应用程序中的自定义操作正在执行,并且出于某种奇怪的原因而不是更新,我以前的应用程序消失了,新的应用程序没有安装。现在,当我安排自定义操作仅在安装期间运行时,应用程序正在更新。

标签: c# sqlite installation wix custom-action


【解决方案1】:

提示Sqlite.Interop.dll 位于x86x64 文件夹下,并且不知何故,Wix 不会拾取 CustomAction 的 bin 文件夹下的子文件夹。您需要以某种方式将这两个文件夹安装在 C:\Windows\Installer\xxxxxfolder where you custom actiondllfiles are copied during install. The problem I am having is that I cannot find the variable for that temp folder underC:\Windows\installer(that is different thanC:\User\Temp...`)下。

参考: Program Unable to Load DLL 'SQLite.Interop.dll' after WiX Installation

【讨论】:

    猜你喜欢
    • 2023-02-22
    • 2012-02-18
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    • 2018-08-13
    • 2020-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多