清除App.config中的DbProviderFactories

时间:2013-05-26 18:59:56

标签: .net app-config machine.config dbproviderfactories

我有一个App.config,我想用不同版本的提供程序替换machine.config中指定的提供程序。我尝试使用remove按名称删除提供商,现在尝试使用clear将其删除 all

这似乎没有效果:连接字符串仍在加载machine.config中指定的提供程序。例如,当使用下面的配置时,我希望应用程序来查找我的提供程序。

<system.data>
    <DbProviderFactories>
      <clear />
  </system.data>

此外,指定其他名称或尝试覆盖相同的名称;也没有效果。

<system.data>
    <DbProviderFactories>
      <clear />
      <add name="MySQL Data Provider" invariant="testprovider" description=".Net Framework Data Provider for MySQL"
                       type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.3.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
    </DbProviderFactories>
  </system.data>

1 个答案:

答案 0 :(得分:1)

您无法通过“名称”删除提供商。您必须使用“不变”名称将其删除。

示例:

<system.data>
  <DbProviderFactories>
    <remove invariant="MySql.Data.MySqlClient" />
    <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.3.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
  </DbProviderFactories>
</system.data>