Visual Studio 2010 Professionalで新しいデータソースをセットアップしようとすると、「要求された.Net Frameworkデータプロバイダーが見つかりません」と表示されるのはなぜですか?
私の統計:
テストASP.NETアプリケーションを開始しましたが、新しいデータソースを追加しようとすると、次のようになります。
要求された.Net Frameworkデータプロバイダーが見つかりません。インストールされていない可能性があります。
.NET 4がインストールされています。
接続を構築して[接続のテスト]をクリックすると、テストが成功します。 SQL Server Management Studioは正常に接続し、すべての資格情報を確認しました。
Machine.configファイルに、自己終了ノードが追加されているという報告があります。削除することで問題が解決しました。 machine.configは\Windows\Microsoft.net\Framework\vXXXX\Config
にあります。 32ビットと64ビットのバリアントを含む、インストールされているフレームワークのバージョン数に基づいて、多数の構成ファイルを作成できます。
<system.data>
<DbProviderFactories>
<add name="Odbc Data Provider" invariant="System.Data.Odbc" ... />
<add name="OleDb Data Provider" invariant="System.Data.OleDb" ... />
<add name="OracleClient Data Provider" invariant="System.Data ... />
<add name="SqlClient Data Provider" invariant="System.Data ... />
<add name="IBM DB2 for i .NET Provider" invariant="IBM.Data ... />
<add name="Microsoft SQL Server Compact Data Provider" ... />
</DbProviderFactories>
<DbProviderFactories/> //remove this one!
</system.data>
私は他の提案が好きですが、単一のアプリケーションのmachine.configを更新したくないです。 web.config/app.configに追加することをお勧めします。 「ビン」にデプロイしたMySql Connector/NETを使用するために必要なものを以下に示します。
<system.data>
<DbProviderFactories >
<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.6.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
私の場合、MySQLのデータプロバイダーエントリは、上記のmachine.configファイルに「単に」欠落していました(ただし、MySQLコネクタは正しくインストールされていました)
<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.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
MySQLの正しいバージョンをエントリに追加することを忘れないでください
私の問題はオンラインで見つけた回答ごとにmachine.configに起因すると考えましたが、犯人はプロジェクトのweb.configにあり、DbProviderFactoriesをクリアしていました。
<system.data>
<DbProviderFactories>
<clear />
...
</DbProviderFactories>
</system.data>
バージョン6.7.4でこの問題が発生し、バージョン6.5.6をインストールすることで解決しました。
私のセットアップは、Win 2008 R2 SP1 Data Centerエディション、SQL Server 2008 R2 with Business Intelligence Development Studio(VS2008)です。非常に基本的なインストール。
6.7.4をインストールしていたとき、MySQLプロバイダーを選択肢として見ることさえできませんでした。ただし、machine.configファイルを調べると、MySQLロールプロバイダーなどの参照が表示されましたが、にエントリが追加されていません。
うまくいきます、ありがとうございます。 .Net Framework 4.7.1をインストールしたときにこの問題が発生しました。マシン構成のSystem.Data
の下のDbProviderFactories
設定が何らかの理由で消去されました。以下に示すように、必要な構成設定を追加した後に機能し始めましたDataProviderFactories
<system.data>
<DbProviderFactories>
<add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
<add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
</DbProviderFactories>
</system.data>