在Hangfire项目中使用Dapper库时,如何解决.NET Core参考和NuGet程序包版本冲突?

时间:2019-01-17 13:00:41

标签: .net-core nuget dapper hangfire

在将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)

不幸的是,我必须保留旧版本库而不是重新使用它。我如何解决软件包版本冲突,同时两个库同时存在。希望有人能找到一个好的解决方案。谢谢!

1 个答案:

答案 0 :(得分:1)

在Nuget中卸载Dapper并安装它正在寻找的版本,在我的情况下为1.50.1.0。不确定为什么将Hangfire编码为特定版本,但这可以解决此问题。

希望这不是永久性的错误,但这将一直有效,直到将其修复为止。