首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VisualStudio2017更新问题:无法加载DLL‘sqlite3 3’:找不到指定的模块。(HRESULT例外: 0x8007007E)

VisualStudio2017更新问题:无法加载DLL‘sqlite3 3’:找不到指定的模块。(HRESULT例外: 0x8007007E)
EN

Stack Overflow用户
提问于 2017-04-13 13:13:57
回答 1查看 3.1K关注 0票数 6

在将vs2015 .net标准升级到vs2017时,我在测试项目中发现了以下错误。

无法加载DLL‘sqlite3 3’:找不到指定的模块。(HRESULT例外: 0x8007007E)

它适用于vs2015,sqlite提供者1.0.101.0。

新环境: Visual 2017,TargetFramework="net461“使用.netcore1.1包,sqlite 1.0.105.0

我已经尝试了所有的决议,我可以从网上得到如下,但都是徒劳。我试过了,

  1. 将下面的行添加到.csproj,<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType><AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
  2. 选择测试处理器作为x86
  3. 已安装的提供程序:从sqlite-netFx46-static-binary-bundle-Win32-2015-1.0.105.0.zip到http://system.data.sqlite.org
  4. 安装System.Data.SQLite 1.0.105Nuget软件包
  5. 尝试将sqlite3.dll (x86)放到项目文件夹中,将其设置为"Content“和"copy”,甚至尝试将文件复制到bin/x86/,它会抱怨一个新的错误

试图加载格式不正确的程序。(HRESULT例外: 0x8007000B)

代码语言:javascript
复制
at Microsoft.Data.Sqlite.Interop.NativeMethods.Sqlite3_sqlite3.sqlite3_open_v2(IntPtr filename, Sqlite3Handle& ppDb, Int32 flags, IntPtr vfs)
   at Microsoft.Data.Sqlite.Interop.NativeMethods.Sqlite3_sqlite3.open_v2(IntPtr filename, Sqlite3Handle& ppDb, Int32 flags, IntPtr vfs)
   at Microsoft.Data.Sqlite.Interop.NativeMethods.sqlite3_open_v2(String filename, Sqlite3Handle& ppDb, Int32 flags, String vfs)
   at Microsoft.Data.Sqlite.SqliteConnection.Open()
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open()
   at Microsoft.EntityFrameworkCore.Storage.Internal.SqliteRelationalConnection.Open()
   at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable.Enumerator.BufferlessMoveNext(Boolean buffer)
   at Microsoft.EntityFrameworkCore.Storage.Internal.NoopExecutionStrategy.Execute[TState,TResult](Func`2 operation, Func`2 verifySucceeded, TState state)
   at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, Func`2 operation, TState state)
   at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable.Enumerator.MoveNext()
   at Microsoft.EntityFrameworkCore.Query.QueryMethodProvider.<_ShapedQuery>d__3`1.MoveNext()
   at Microsoft.EntityFrameworkCore.Query.QueryMethodProvider.<_Include>d__30`1.MoveNext()
   at Microsoft.EntityFrameworkCore.Query.QueryMethodProvider.<_Include>d__30`1.MoveNext()
   at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.<_TrackEntities>d__15`2.MoveNext()
   at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor`1.EnumeratorExceptionInterceptor.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at 
  1. 2017年下载的C++运行时
  2. 安装了“windows运行时SQLite”的扩展

都帮不上忙。我错过什么了吗?

EN

Stack Overflow用户

回答已采纳

发布于 2017-04-14 08:53:35

被四处走动解决了。

我在VisualStudio2017中尝试了POC,通过一个net461项目和一个单元测试项目,net461项目可以很好地与sqlite一起工作,但是单元测试项目需要参考sqlite封装

然而,sqlite包与net461类库项目不能很好地工作,没有任何dll被扩展到bin/x86或bin/x64文件夹

遍历是将x86/sqlite3.dll、x64/sqlite3.dll添加到项目中作为"Content“和”复制它更新“(否则,它可能被使用,并导致错误)如下所示

System.Data.SQLite在这里并不是真正需要的。

现在起作用了。希望sqlite软件包不久将与visual studio 2017兼容。

票数 5
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43393332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档