Visual studio 火鸟及;Visual Studio 2010未能找到数据提供程序
我有64位的Windows 7。我正在尝试将Firebird与VS 2010结合使用 我得到以下错误: 未能找到或加载已注册的.Net Framework数据提供程序。 我已经做了以下工作Visual studio 火鸟及;Visual Studio 2010未能找到数据提供程序,visual-studio,visual-studio-2010,firebird,dataprovider,firebird2.5,Visual Studio,Visual Studio 2010,Firebird,Dataprovider,Firebird2.5,我有64位的Windows 7。我正在尝试将Firebird与VS 2010结合使用 我得到以下错误: 未能找到或加载已注册的.Net Framework数据提供程序。 我已经做了以下工作 已安装“NETProvider-2.6.5.msi” 摘录“FirebirdDexProvider-2.0.5.zip” 我将.dll从DDEX zip文件复制到目录中 C:\Program Files(x86)\FirebirdClient其内容包括: FirebirdSql.Data.FirebirdCl
FirebirdSql.Data.FirebirdClient.dll
FirebirdSql.Data.UnitTests.dll
FirebirdSql.VisualStudio.DataTools.dll
FirebirdSql.VisualStudio.DataToolsUI.dll
我编辑了DDEX中的2个reg文件,将“%path%”替换为“C:\ProgramFiles(x86)\FirebirdClient”
从目录“C:\Program Files(x86)\Microsoft SDK\Windows\v7.0A\Bin\NETFX 4.0 Tools”中,我运行了Gacutil,如下所示
cd "C:\Program Files (x86)\FirebirdClient"
"C:\Program Files\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
我不能使用另一个Gacutil,因为它说它是为以前的版本构建的
我也跑了
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\gacutil.exe" /l Firebirdsql.data.firebirdclient
这给了我:
The Global Assembly Cache contains the following assemblies:
Firebirdsql.data.firebirdclient, Version=2.6.5.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c, processorArchitecture=MSIL
从目录
C:\Windows\Microsoft.NET我修改了以下4个文件:
\Framework\v4.0.30319\Config\machine.config
\Framework\v2.0.50727\Config\machine.config
\Framework64\v2.0.50727\Config\machine.config
\Framework64\v4.0.30319\Config\machine.config
在每个文件中,我都添加了以下两个条目
<configuration>
<configSections>
<section name="FirebirdSql.Data.FirebirdClient" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=2.6.5.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
</configuration>
<system.data>
<DbProviderFactories>
<add name="Firebird Client Data Provider" invariant="FirebirdSql.Data.FirebirdClient" description=".Net Framework Data Provider for Firebird" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient, Version=2.6.5.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c" />
</DbProviderFactories>
</system.data>
任何人都可以提供帮助。当您更改
%path%
时,您需要这样做:
C:\\ProgramFiles(x86)\\FirebirdClient
machine.config中的这一行:
<configSections>
<section name="FirebirdSql.Data.FirebirdClient" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=2.6.5.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
应该这样读:
<configSections>
<section name="firebirdsql.data.firebirdclient" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
请注意,版本不同,它应该是运行时版本,而不是firebird客户端的版本。另外,我认为您只需要编辑machine.config的32位版本,因为VS是一个32位的应用程序 我已经试过了,但这不是解决办法。我还研究了在注册表中如何使用其他路径,它们都使用单反斜杠。感谢您的输入。当我第一次安装Firebird时,这是我的问题,当我将单杠更改为双反斜杠时,所有工作:谢谢!!!我花了很长时间寻找答案,这很有魅力。我相信我的错误是误读了DDEX安装说明。这适用于.NET 4.0,但使用3.5时,我根据DDEX指令将运行时版本更改为2.0.0.0,但仍然失败,但是,我认为我可以接受。firebird客户端将仅适用于.NET 4.0,这与GAC的不同版本有关吗,由于我只在.NET 4.0 GAC上安装了firebird库,而不是以前的GAC,顺便说一句,我无法运行,这与它是以前的版本有关。AFAIK 4.0版本将不会在3.5模式下运行,因为它是在4.0中编译的。我还认为,对于3.5,您应该使用3.5.0.0版。顺便说一句,如果它解决了您的问题,请将此标记为已接受的答案。谢谢
<configSections>
<section name="FirebirdSql.Data.FirebirdClient" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=2.6.5.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
<configSections>
<section name="firebirdsql.data.firebirdclient" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>