2016-07-27 61 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提供程序。