Firebird DDEX Visual Studio 2010“无法找到所请求的.Net Framework数据提供程序。可能未安装”

时间:2012-01-12 13:37:04

标签: .net visual-studio-2010 firebird dataprovider

我遇到这个问题已经困了好几天了。我看到很多人都有这个问题,我尝试了很多东西,但仍然没有成功。请有人帮助我。

我正在运行Windows 7 64位,MS Visual Studio 2010,Firebird DDEX 2.0.5和NetProvider 2.7.0.0。我已经密切关注this stackoverflow问题以及DDEX和其他在线文章提供的ReadMe文件,试图安装所有内容。我做了以下事情:

  1. 将NetProvider 2.7.0.0安装到 C:\ Program Files(x86)\ FirebirdClient

  2. 将DDEX 2.0.5文件解压缩到 C:\ Program Files(x86)\ FirebirdClientt

  3. 在C:\ Program Files(x86)\ FirebirdClient \ reg_files \ VS2010中编辑了注册表文件FirebirdDDEXProvider64,以便

    “CodeBase”=“%Path%\ FirebirdSql.VisualStudio.DataTools.dll”

  4. 现在读取

    "CodeBase"="C:\\Program Files (x86)\\FirebirdClient\\FirebirdSql.VisualStudio.DataTools.dll"
    

    然后我安装了它。

    1. 我使用gacutil.exe通过执行以下操作来安装FirebirdSql.VisualStudio.DataTools.dll和FirebirdSql.Data.FirebirdClient.dll:

      cd“C:\ Program Files(x86)\ FirebirdClient” “C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ bin \ NETFX 4.0 Tools \ gacutil.exe”/ i FirebirdSql.VisualStudio.DataTools.dll

      “C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ bin \ NETFX 4.0 Tools \ gacutil.exe”/ i FirebirdSql.Data.FirebirdClient.dll

    2. 根据上面超链接问题([此处])2中给出的说明,除了我使用程序文件(x86)中的gacutil.exe而不是程序文件来安装FirebirdSql.VisualStudio.DataTools。 dll as gacutil.exe在正常的程序文件目录中不存在。我确实使用了gacutil.exe的list函数来查看两个文件是否都安装正确,还记录了PublicKeyFunction等。

      1. 经过多次阅读,我决定调整所有四个machine.config文件。它们的路径是:
      2. C:\的Windows \ Microsoft.NET \框架\ V2.0.50727 \ CONFIG \ machine.config中

        C:\的Windows \ Microsoft.NET \框架\ v4.0.30319 \配置\ machine.config中

        C:\的Windows \ Microsoft.NET \ Framework64 \ V2.0.50727 \ CONFIG \ machine.config中

        C:\的Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \配置\ machine.config中

        我从DDEX自述文件中复制了代码并将其粘贴到文件中的正确位置,并相应地填写了各种参数。我记住,运行时版本号的不同取决于我是否正在调整v2或v4 machine.config文件,同时还要从上面的gacutil.exe步骤中记录正确的参数...即。 version = 2.7.0.0,culture = neutral,publickeytoken = 3750abcc3150b00c。见下文。

        C:\的Windows \ Microsoft.NET \框架\ V2.0.50727 \ CONFIG \ machine.config中

        <configuration>
            <configSections>
                <section name="firebirdsql.data.firebirdclient" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                <section name="appSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false" />
        

        并在文件中进一步向下

        <system.data>
                <DbProviderFactories>
                <add name="FirebirdClient Data Provider" invariant="FirebirdSql.Data.FirebirdClient" description=".Net Framework Data Provider for Firebird" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient, Version=2.7.0.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c" />
                    <add name="Odbc Data Provider" invariant="System.Data.Odbc" description=".Net Framework Data Provider for Odbc" type="System.Data.Odbc.OdbcFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                    <add name="OleDb Data Provider" invariant="System.Data.OleDb" description=".Net Framework Data Provider for OleDb" type="System.Data.OleDb.OleDbFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                    <add name="OracleClient Data Provider" invariant="System.Data.OracleClient" description=".Net Framework Data Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                    <add name="SqlClient Data Provider" invariant="System.Data.SqlClient" description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                </DbProviderFactories>
            </system.data>
        

        (如果有帮助,我会粘贴额外的代码?)

        类似于v4 machine.config文件,除了这里我必须按如下方式调整代码的DBProviderFactories部分:

        <configuration>
            <configSections>
                <section name="firebirdsql.data.firebirdclient" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
                <section name="appSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false" />
        

        这是原始的machine.config代码:

         <system.data>
                <DbProviderFactories />
            </system.data>
        

        这就是我把它调整为:

         <system.data>
                <DbProviderFactories>
                    <add name="FirebirdClient Data Provider" invariant="FirebirdSql.Data.FirebirdClient" description=".Net Framework Data Provider for Firebird" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient, Version=2.7.0.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c" />
                </DbProviderFactories>
            </system.data>
        

        64位V4文件也是如此。

        当我打开MS Visual Studio 2010并尝试添加连接时,我可以选择一个Firebird数据源并列出Firebird的.Net Framework数据提供程序,然后在继续我可以进入数据库注册的位置时进入下一个窗口参数。但是,当我按下测试连接时(即使没有输入数据),它会显示“测试连接成功”,当我按下确定时,我收到错误'无法找到所请求的.NET Framework数据提供者。它可能没有安装。'

        我不知道还能做什么。我读过的所有内容都指向我的machine.config文件不正确,但我找不到问题。

        非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

从firebird网站试用3.0.0 http://www.firebirdsql.org/en/net-provider/