我有一个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>
答案 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>