我有一个App.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>
不能通过"name"删除提供程序。您必须用它的"不变"名称来删除它。
的例子:
<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>