我遇到这个问题已经困了好几天了。我看到很多人都有这个问题,我尝试了很多东西,但仍然没有成功。请有人帮助我。
我正在运行Windows 7 64位,MS Visual Studio 2010,Firebird DDEX 2.0.5和NetProvider 2.7.0.0。我已经密切关注this stackoverflow问题以及DDEX和其他在线文章提供的ReadMe文件,试图安装所有内容。我做了以下事情:
将NetProvider 2.7.0.0安装到 C:\ Program Files(x86)\ FirebirdClient 。
将DDEX 2.0.5文件解压缩到 C:\ Program Files(x86)\ FirebirdClientt 。
在C:\ Program Files(x86)\ FirebirdClient \ reg_files \ VS2010中编辑了注册表文件FirebirdDDEXProvider64,以便
“CodeBase”=“%Path%\ FirebirdSql.VisualStudio.DataTools.dll”
现在读取
"CodeBase"="C:\\Program Files (x86)\\FirebirdClient\\FirebirdSql.VisualStudio.DataTools.dll"
然后我安装了它。
我使用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中给出的说明,除了我使用程序文件(x86)中的gacutil.exe而不是程序文件来安装FirebirdSql.VisualStudio.DataTools。 dll as gacutil.exe在正常的程序文件目录中不存在。我确实使用了gacutil.exe的list函数来查看两个文件是否都安装正确,还记录了PublicKeyFunction等。
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文件不正确,但我找不到问题。
非常感谢任何帮助。