2013-05-26 56 views
2

我有一個App.config,我想用不同版本的提供程序替換machine.config中指定的提供程序。我試圖通過名稱remove刪除提供商,現在嘗試刪除它們全部clear清除App.config中的DbProviderFactory

這似乎不起作用:連接字符串仍在加載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

您無法通過「名稱」刪除提供者。您必須使用其「不變」名稱將其刪除。

實施例:

<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>