在将Hangfire库用于.net核心应用程序时,两个不同的Dapper库之间发生版本冲突。一个版本是Nuget软件包的V1.5.0,另一个版本是我的本地.net核心项目的V1.0.0参考。运行程序时出错。
System.IO.FileLoadException
HResult=0x80131040
Message=Could not load file or assembly 'Dapper, Version=1.50.1.0, Culture=neutral, PublicKeyToken=null'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Source=Hangfire.SqlServer
StackTrace:
at Hangfire.SqlServer.SqlServerObjectsInstaller.Install(DbConnection connection, String schema)
at Hangfire.SqlServer.SqlServerStorage.<>c__DisplayClass24_0.<UseConnection>b__0(DbConnection connection)
at Hangfire.SqlServer.SqlServerStorage.UseConnection[T](DbConnection dedicatedConnection, Func`2 func)
at Hangfire.SqlServer.SqlServerStorage.UseConnection(DbConnection dedicatedConnection, Action`1 action)
at Hangfire.SqlServer.SqlServerStorage.Initialize()
at Hangfire.SqlServerStorageExtensions.UseSqlServerStorage(IGlobalConfiguration configuration, String nameOrConnectionString)
不幸的是,我必须保留旧版本库而不是重新使用它。我如何解决软件包版本冲突,同时两个库同时存在。希望有人能找到一个好的解决方案。谢谢!
答案 0 :(得分:1)
在Nuget中卸载Dapper并安装它正在寻找的版本,在我的情况下为1.50.1.0。不确定为什么将Hangfire编码为特定版本,但这可以解决此问题。
希望这不是永久性的错误,但这将一直有效,直到将其修复为止。