簡體   English   中英

在已注冊的 .NET 數據提供者列表中找不到指定的不變名稱“MySql.Data.MySqlClient”

[英]The specified invariant name 'MySql.Data.MySqlClient' wasn't found in the list of registered .NET Data Providers

我有一個使用.Net Standard 2.1 開發的 C# 庫,該庫在基於.Net Core 3.0 的測試控制台應用程序中調用。 但是在運行時,GetFactory 會拋出異常。

 private DbConnection connection;
 connection = DbProviderFactories.GetFactory("MySql.Data.MySqlClient").CreateConnection();

例外:

DbProviderFactories.GetFactory 在已注冊的 .NET 數據提供者列表中找不到指定的不變名稱“MySql.Data.MySqlClient”。

我已經安裝了 MySqlConnector 1.2.1。 但這沒有幫助。 並在 app.config 文件中添加以下內容。

<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=8.0.23.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>

在此先感謝您的幫助。

您為 app.config 展示的 XML 僅適用於 .NET 框架應用程序。

對於 .NET Core 2.1 或更高版本,請調用DbProviderFactories.RegisterFactory 您通過的確切 arguments 將取決於您要注冊的工廠(以及您已安裝的 NuGet 軟件包):

// MySqlConnector (my personal recommendation for .NET Core)
DbProviderFactories.RegisterFactory("MySqlConnector", MySqlConnector.MySqlConnectorFactory.Instance);

// MySql.Data (may be needed instead if other code is hard-coded to "MySql.Data.MySqlClient")
DbProviderFactories.RegisterFactory("MySql.Data.MySqlClient", MySql.Data.MySqlClient.MySqlClientFactory.Instance);

有關更多信息,請參閱使用 DbProviderFactories

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM