Npgsql和EntityFramework6.Npgsql的不兼容版本

时间:2016-07-14 15:48:55

标签: npgsql

如果没有正确设置项目,将始终看到如下错误:

无法加载文件或程序集'Npgsql,Version = 3.1.2.0,Culture = neutral,PublicKeyToken = 5d8b90d52f46fda7'或其依赖项之一。程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)

使用AsmSpy之后,我注意到问题出现在“EntityFramework6.Npgsql”中,它无法识别新版本的Npgsql,如下图所示:

Meu projeto personalizado reconhece a última versão, menos o "EntityFramework6.Npgsql"

我自己的DLL识别最新版本,但“EntityFramework6.Npgsql”

除外

1 个答案:

答案 0 :(得分:13)

出于某种原因,EF6.Npgsql 3.1.1是针对Npgsql 3.1.2编译的,即使nuget依赖于3.1.0。 I opened an issue for this

但是,以更一般的方式,您需要绑定重定向以允许EF6.Npgsql针对较新版本的Npgsql(例如3.1.6)运行,否则它需要针对其编译的确切版本。通常,VS应该自动将所需的重定向添加到App.config中,请参阅https://msdn.microsoft.com/en-us/library/7wd6ex19(v=vs.110).aspx。我已经在一个处女项目中进行了测试,这样可行:安装EF6.Npgsql 3.1.1然后安装Npgsql 3.1.6会导致正确的绑定重定向出现在App.config中,重定向到Npgsql 3.1.6 - 一切正常细