gpt4 book ai didi

c# - 继续获取 "Unable to load DLL ' SQLite.Interop.dll' :"in VS 2017 with C# .net 4.6.1

转载 作者:行者123 更新时间:2023-12-05 07:26:20 32 4
gpt4 key购买 nike

我在 Visual Studio 2017 中的 Web 项目中遇到以下错误:

Unable to load DLL 'SQLite.Interop.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

现在,我已经阅读了所有具有相同或相似标题的其他 StackOverflow 问题,并且没有提到的解决方案对我有用。

最奇怪的是,SQLite.Interop.dll 文件在我的\bin 文件夹中,同时在 x86 和 x64 中。

Fusion 日志已启用,但它似乎根本没有接收到它。

我“感觉”我的 IIS 缓存了一些东西。

这里是关于我的环境和我正在做的事情的更多细节:

  • 我正在使用 IIS 10.0.17134.1
  • 在 Windows 10 build 17134.523 上运行
  • 使用 Visual Studio 2017 (15.8.6)
  • .Net 项目配置为使用 .Net 4.6.1
  • 罪魁祸首是 NHibernate (5.2.3)

    Configuration.BuildSessionFactory()

  • 我的项目使用 FluentNhibernate 和许多其他 nuget 包。
  • 我只使用 Sqlite Nuget 包 System.Data.SQLite.Core 版本 1.0.109.2

此外,我有一个实际可行的基础项目。

我正在将其转换为 Visual Studio 模板,将其导出,然后创建一个自定义 Visual Studio 模板类型的新项目。

就是这个新创建的项目不想工作。事实上,当我第一次运行时,visual studio 会下载所有 nuget 包,但不会复制 sqlite.interop.dll 文件。

只有当我第二次重新构建解决方案时,它才会复制文件。

但我仍然得到错误。

所以我想强调,实际的 dll (SQLite.Interop.dll) 确实存在于 bin 目录中,并且 IIS 网站托管在该目录中。

但我仍然得到这个错误。

发生这种情况有什么原因吗?

我感觉它可能与 Visual Studio 模板有关,但我看不出我手动创建的项目和模板创建的项目有任何区别。但我认为这有点离题,为什么我会收到错误?

感谢任何帮助。

最佳答案

尝试在 Entity Framework 设计器 edmx 文件中工作时,我也有一段时间遇到此错误。

我终于从SQLite FAQ中找到了解决方案 https://system.data.sqlite.org/index.html/doc/trunk/www/faq.wiki#q10

(11) Why do I get a DllNotFoundException (for "sqlite3.dll" or "SQLite.Interop.dll") when trying to run my application?

Either the named dynamic link library (DLL) cannot be located or it cannot be loaded due to missing dependencies. Make sure the named dynamic link library is located in the application directory or a directory along the system PATH and try again. Also, be sure the necessary Visual C++ runtime redistributable has been installed unless you are using a dynamic link library that was built statically linked to it.

所以我简单地将 SQLite.Interop.dll 复制到 PATH 变量引用的某个地方(我很懒,所以我只是将它放在 C:\Windows 中)。我不必为我的项目手动选择 x86 或 x64,它仍然使用任何 CPU,现在一切正常。

关于c# - 继续获取 "Unable to load DLL ' SQLite.Interop.dll' :"in VS 2017 with C# .net 4.6.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54407591/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com