![](/img/trans.png)
[英]The ADO.NET provider with invariant name 'MySql.Data.MySqlClient' is either not registered in the machine or application config file
[英]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.