npgsql 3.2.0中的exception通过Excel PowerQuery连接到PostgreSQL

我有一个PostgreSQL 9.6.1数据库,我想从中提取数据以便在Excel中使用Get&Transform(PowerQuery)。 我有安装了.NET Framework 4.6的Windows 10 64位上运行的64位Excel 2016 Pro Plus。

当我尝试使用“数据 – >新查询 – >从数据库 – >从PostgreSQL数据库”,我把服务器名称(localhost)和数据库名称到对话框中。

然后我得到错误信息,

从提供程序读取数据时发生错误:“'Npgsql.Counters'的types初始值设定项引发exception。

我有以下设置:

  • 用nuget安装的npgsql 3.2.0。 有3个版本的DLL,net45,net451和netstandard1.3。 我使用net451没有其他原因,它是最接近4.6。
  • mono.security.dll 4.0.0.0。 我用gacutil.exe将这两个DLL添加到全局caching中
  • 我更新machine.config如下DbProviderFactories

    为Postgresql服务器添加description =“.Net Framework数据提供程序”type =“Npgsql.NpgsqlFactory,Npgsql,Version = 3.2.0.0 ,Culture = neutral,PublicKeyToken = 5d8b90d52f46fda7”name =“Npgsql Data Provider”invariant =“Npgsql”support = “FF”

任何人都可以帮助我了解我做错了什么吗?

看起来这是最近的一个npgsql版本的问题? 在此之前,如果您安装3.1或3.0版本的Power Query应该可以工作:)

另一件你可以尝试的是使用net45。 我们正式支持.NET 4.5.1,但是有时候老版本会有更多的运气。