我已经为这个问题困了好几天了。我看到很多人都有这个问题,我尝试过很多事情,但还是失败了。有人能帮帮我吗。
我运行的是Windows 7 64位,MS Visual 2010,Firebird DDEX 2.0.5和NetProvider 2.7.0.0。我密切关注this堆栈溢出问题,并结合DDEX和其他在线文章提供的ReadMe文件来尝试安装所有内容。我做了以下工作:
(x86)\FirebirdClient.
"CodeBase"="%Path%\FirebirdSql.VisualStudio.DataTools.dll“
现在读
"CodeBase"="C:\\Program Files (x86)\\FirebirdClient\\FirebirdSql.VisualStudio.DataTools.dll"然后我安装了它。
cd "C:\Program (x86)\FirebirdClient“C:\Program (x86)\Microsoft \Windows\v7.0A\bin\NETFX 4.0 Tools\gacutil.exe”/i FirebirdSql.VisualStudio.DataTools.dll
“C:\程序文件(x86)\Microsoft \Windows\v7.0A\bin\NETFX4.0 Tools\gacutil.exe”/i /i
按照上面超链接的问题(这里)2中的说明,除了我使用来自程序文件的gacutil.exe (x86)而不是Program来安装FirebirdSql.VisualStudio.DataTools.dll,因为在普通的程序文件目录中不存在gacutil.exe。我确实使用了gacutil.exe的list函数来查看两个文件是否安装正确,并记录PublicKeyFunction等。
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\machine.config
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config
我从DDEX自述文件中复制了代码,并将其粘贴到文件中的正确位置,并相应地填写了各种参数。我这样做是考虑到运行时版本号是不同的,这取决于我是否调整了v2或v4 machine.config文件,并将从上面的gacutil.exe步骤中记录的正确参数.version=2.7.0.0,culture=neutral,publickeytoken=3750abcc3150b00c。见下文。
C:\Windows\Microsoft.NET\Framework\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文件也是如此。
当我打开2010并尝试添加一个连接时,我可以选择一个火鸟数据源,它列出了火鸟的.Net框架数据提供程序,并在继续输入数据库注册参数时得到了下一个窗口。但是,当我按下Test (即使没有输入数据)时,它会说‘测试连接成功的’,当我按OK键时,我会得到错误‘无法找到请求的.NET Framework数据提供程序。它可能没有安装。‘
我不知道还能做什么。我所读到的一切都表明machine.config文件是不正确的,但我找不到问题。
任何帮助都将不胜感激。
发布于 2012-10-26 18:48:58
尝试3.0.0来自火鸟网站http://www.firebirdsql.org/en/net-provider/
https://stackoverflow.com/questions/8835977
复制相似问题