未能加载文件或程序集-绑定重定向导致

作者:vkvi 来源:ITPOW(原创) 日期:2024-1-4

访问 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。

相关阅读

相关文章