2016-07-27 76 views
3

(配置:VS 2015年的社区中,Windows 10 64位,净4.6.1)如何从DbProviderFactories中移除提供者?

在一个点上我装

数据Npgsql的提供.NET数据提供程序对PostgreSQL Npgsql的Npgsql.NpgsqlFactory,Npgsql的,版本= 3.0.7.0,文化=中性公钥= 5d8b90d52f46fda7

要由

DbProviderFactor使用ies.GetFactoryClasses()。

我正在尝试将其删除。

  • 我已经从项目的App.config中删除了所有连接字符串和xml元素。

  • 无论从

的%SystemRoot%\ Microsoft.NET \框架\ v4.0.30319 \ CONFIG \ machine.config中

的%SystemRoot %\ Microsoft.NET \ Framework64 \ v4.0.30319 \ CONFIG \ machine.config

我删除了DbProviderFactories提供商声明

添加名称= “Npgsql的数据提供者” 不变= “Npgsql的” 支持= “FF” 描述= “对于PostgreSQL服务器净Framework数据提供者” 类型=” Npgsql.NpgsqlFactory,Npgsql的”

  • 使用GACUTIL/U Npgsql的,我删除从GAC Npgsql的所有参考文献:

gacutil/l Npgsql Microsoft(R).NET全局程序集缓存实用程序。版本4.0.30319.0 版权所有(c)Microsoft Corporation。版权所有。

全局程序集缓存包含以下组件:

项目数= 0

所以从machine.config中的,在app.config和GAC,DbProviderFactories Npgsql的去除后提供。 GetFactoryClasses()仍然报告:

数据Npgsql的提供.NET数据提供程序对PostgreSQL Npgsql的Npgsql.NpgsqlFactory,Npgsql的,版本= 3.0.7。0,文化=中性公钥= 5d8b90d52f46fda7

还有什么做我需要做说服DbProviderFactories Npgsql的是不是一个供应商?

非常感谢您对此的任何帮助。编辑#1:我永远不能“移除”Npgsql提供程序,但是使用NET 4.5.2的目标框架(而不是.NET 4.6.1)进行重建确实解决了许多其他问题。

编辑#2:我要回到这一点,但有趣的是,Visual Studio的2015年社区有DbProvderFactories自己的配置在

C:\ Program Files文件(x86)的\微软的Visual Studio 14.0 \ Common7 \ IDE \ devenv.exe.config

回答

0

在一般意义上,我敢打赌,将它从devenv.exe.config中移除将完成其删除。然而,在这种特定的情况下,事实证明,在Npgsql的开发团队已经在安装卸载程序的应用程序:

C:\ Program Files文件(x86)的\的Npgsql的开发团队\ Npgsql的

标记,uninstall.exe。

(我找不到这方面的信息)。

晚更新 与PetaPoco播放时,提供Npgsql的无法dispite它被添加到GAC并在machine.config文件中找到。调查devenv.exe.config,发现:

<remove invariant="Npgsql" /> 
    <add name="Npgsql Data Provider" invariant="Npgsql" description=".Net Data Provider for PostgreSQL" type="Npgsql.NpgsqlFactory, Npgsql, Version=3.0.7.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" /> 

这是指错误的Npgsql版本。从devenv.exe.config文件中删除并重新启动Visual Studio,PetaPoco可以从machine.confg和GAC中正确找到Npgsql提供程序。