Visual Studio 2017更新问题:无法加载DLL'sqlite3':无法找到指定的模块。 (来自HRESULT的异常:0x8007007E)

Visual Studio 2017更新问题:无法加载DLL'sqlite3':无法找到指定的模块。 (来自HRESULT的异常:0x8007007E)

问题描述:

将vs2015 .net标准升级到vs2017时,我在测试项目中遇到以下错误。Visual Studio 2017更新问题:无法加载DLL'sqlite3':无法找到指定的模块。 (来自HRESULT的异常:0x8007007E)

无法加载DLL'sqlite3':无法找到指定的模块。 (异常来自HRESULT:0x8007007E)

它与vs2015,源码提供商1.0.101.0

新环境效果很好:的Visual Studio 2017年,TargetFramework = “net461” 使用.netcore1.1包,源码提供商1.0.105.0

我尝试了所有可以从互联网上获得的解决方案,但都是徒劳的。我试过,

  1. 添加以下线的.csproj,<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType><AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
  2. 选定的测试处理器的x86
  3. 安装提供:sqlite的-netFx46静态二进制束-Win32-2015-1.0。 105.0.zip从http://system.data.sqlite.org

  4. 安装System.Data.SQLite 1.0.105 NuGet包

  5. 试图把sqlite3.dll(86)到项目文件夹,将其设置为 “内容” 和 “复制总是”,甚至试着将文件复制到斌/ 86 /,它抱怨一个新的错误

试图加载程序格式不正确。 (从HRESULT异常:0x8007000B)

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. 下载C++运行时为2017
  2. 的安装的扩展 “的SQLite运行时间窗口”
  3. 所有没有帮助。 我错过了什么?

开始=>

由散步解决。

我试图POC在Visual Studio 2017年,具有net461项目和单元测试项目,net461项目使用SQLite效果很好,但单元测试项目需要引用sqlite packageenter image description here

然而,SQLite的包没有按”与net461类库项目将不起作用很好,没有dll是extacted于斌/ x86或斌/ x64文件夹

enter image description here

的步行约是增加的x86/sqlite3.dll,64/sqlite3.dll项目作为“内容”和“复制”它较新的”(否则,它可以被使用,而造成的错误),如下 enter image description here enter image description here

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

现在,它的工作。希望sqlite包将很快与视觉工作室兼容2017