web-dev-qa-db-ja.com

Visual Studio 2010 Professionalで要求された.Net Frameworkデータプロバイダーが見つかりません

Visual Studio 2010 Professionalで新しいデータソースをセットアップしようとすると、「要求された.Net Frameworkデータプロバイダーが見つかりません」と表示されるのはなぜですか?

私の統計:

  • Windows 7 64ビット16ギガバイトのRAM
  • Visual Studio 2010 Professional
  • SQL Server 2008(サーバーA、完全な管理者権限)
  • SQL Server 2008(サーバーB、完全な管理者権限)

テストASP.NETアプリケーションを開始しましたが、新しいデータソースを追加しようとすると、次のようになります。

要求された.Net Frameworkデータプロバイダーが見つかりません。インストールされていない可能性があります。

.NET 4がインストールされています。

接続を構築して[接続のテスト]をクリックすると、テストが成功します。 SQL Server Management Studioは正常に接続し、すべての資格情報を確認しました。

30
cbmeeks

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

私は他の提案が好きですが、単一のアプリケーションの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>
13
Bobby Cannon

私の場合、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の正しいバージョンをエントリに追加することを忘れないでください

3
Mehdi LAMRANI

私の問題はオンラインで見つけた回答ごとにmachine.configに起因すると考えましたが、犯人はプロジェクトのweb.configにあり、DbProviderFactoriesをクリアしていました。

<system.data>
  <DbProviderFactories>
    <clear />
       ...
  </DbProviderFactories>
</system.data>
1
drobison

バージョン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ロールプロバイダーなどの参照が表示されましたが、にエントリが追加されていません。

1
Paweł Czopowik

うまくいきます、ありがとうございます。 .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>
1
Vijay