无法加载文件或程序集“System.Data.SQLite,版本=1.0.115.5

Could not load file or assembly 'System.Data.SQLite, Version=1.0.115.5

.NET Framework 项目 - 通过 Nuget 包将 SQLite 添加到我的项目中,app.config 和 package.config 看起来正确。

错误是:- “类型:System.IO.FileNotFoundException,mscorlib,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089 消息:无法加载文件或程序集 'System.Data.SQLite, Version=1.0.115.5, Culture=neutral, PublicKeyToken=db937bc2d44ff139' 或其依赖项之一。系统找不到指定的文件。"

所有针对 x86 的项目

Packages.config

<packages>
   <package id="EntityFramework" version="6.4.4" targetFramework="net471" />
   <package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.115.5" targetFramework="net471" />
   <package id="System.Data.SQLite" version="1.0.115.5" targetFramework="net471" />
   <package id="System.Data.SQLite.Core" version="1.0.115.5" targetFramework="net471" />
   <package id="System.Data.SQLite.EF6" version="1.0.115.5" targetFramework="net471" />
   <package id="System.Data.SQLite.Linq" version="1.0.115.5" targetFramework="net471" />
</packages>

我试过下面的链接和许多其他链接,但没有任何效果 - 我错过了什么?

Could not load file

Could not load file or assembly 'System.Data.SQLite'

我最近从 1.0.113 升级到 1.0.115 时遇到了类似的问题。似乎不再正确复制依赖的本机二进制文件。

将这两行添加到项目的 post 构建步骤(在您的解决方案中哪一步并不重要)帮助:

xcopy /s /y "%USERPROFILE%\.nuget\packages\Microsoft.SqlServer.Compact.0.8876.1\NativeBinaries\amd64\*.*" "$(TargetDir)"
xcopy /s /y "%USERPROFILE%\.nuget\packages\Stub.System.Data.SQLite.Core.NetFramework.0.115\build\net46\*.dll" "$(TargetDir)"

(也许您需要调整这些行,具体取决于使用的包版本和目标 .NET 版本)

编辑 由于你还在使用packages.config,所以上面的复制指令大概应该改为:

xcopy /s /y "$(SolutionDir)\packages\Microsoft.SqlServer.Compact.0.8876.1\NativeBinaries\amd64\*.*" "$(TargetDir)"
xcopy /s /y "$(SolutionDir)\packages\Stub.System.Data.SQLite.Core.NetFramework.0.115\build\net46\*.dll" "$(TargetDir)"