访问 ASP.NET 文件时,提示:
未能加载文件或程序集“Microsoft.Data.Sqlite, Version=2.1.14.0, Culture=neutral, PublicKeyToken=adb9793829ddae60”或它的某一个依赖项。系统找不到指定的文件。
堆栈跟踪中:
[FileNotFoundException: 未能加载文件或程序集“Microsoft.Data.Sqlite, Version=2.1.14.0, Culture=neutral, PublicKeyToken=adb9793829ddae60”或它的某一个依赖项。系统找不到指定的文件。]
[FileNotFoundException: 未能加载文件或程序集“Microsoft.Data.Sqlite, Version=7.0.5.0, Culture=neutral, PublicKeyToken=adb9793829ddae60”或它的某一个依赖项。系统找不到指定的文件。]
现状
在类项目中,有一个操作数据库的,NuGet 引用了 2.1.14.0 的 SQLite。
在 Web 项目中,引用了这个类项目。
但是这个 web.config 中有下面这句:
<configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Microsoft.Data.Sqlite" publicKeyToken="ADB9793829DDAE60" culture="neutral"/> <bindingRedirect oldVersion="0.0.0.0-7.0.5.0" newVersion="7.0.5.0"/> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
解决办法
通过分析,得知:重定向到了一个找不到的版本。
根据实际情况,将 web.config 中这个 Sqlite 依赖配置删除,或者将 newVersion="7.0.5.0" 改为 newVersion="2.1.14.0",或者升级类项目的 SQLite。
相关阅读