2

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

这似乎没有效果:连接字符串仍在加载中指定的提供程序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>
4

1 回答 1

2

您不能通过“名称”删除提供程序。您必须改为使用其“不变”名称删除它。

例子:

<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>
于 2014-10-07T14:22:23.180 回答