积极答复者
连接SQL ServerCE数据库时出错

问题
-
大家好:
我使用 SQL ServerCE 数据库。我使用 System.Data.SqlServerCe.dll 这个链接库来访问数据库。
现在出现一个异常:File version mismatch detected between
ADO.NET Provider and native binaries of SQL
Server Compact which could result in an incorrect
functionality. This could be due to the presence
of multiple instances of SQL Server Compact of
different versions. Please install SQL Server
Compact binaries of matching version [ADO.NET
Provider File Version = 3.5.5692.*, Native Binary
File Version = 3.5.8080.*]这个异常发现在Win7 x64位在操作系统上,在32位系统上没有出现该问题。
难道这是跟操作系统有直接关系吗?还是别的什么原因造成的?
谢谢!
欢迎交流指教 MSN:mangonic@hotmail.com
答案
-
MSDN 上有解决方案
在任何给定时间点,64 位计算机,对于 SQL Server Compact 的正确状态可能如下:- X86 和 amd64 Msi 安装。
- X86 和 amd64 Msi 是相同版本的。
因此,如果面临任何类似的问题,确保该计算机有两个基于 x86 和安装 amd64 Msi 的压缩它们是相同版本。万一不是,然后压缩 SP2 x86 和 x64 Msi 从下面的链接根据需要安装:----------------------------------------------------------------------------------------------------------------------------------------------------------------------
失败原因
- 安装 32 位版本的 SQL Server Compact 3.5 SP2 后,它会将 3.5.8080 版本的 ADO.NET 提供程序 (System.Data.SqlServerCe.dll) 添加到全局程序集缓存 (GAC) 和本机 x86 组件置于 %程序 Files(x86) %文件夹下。
- 私下将 SQL Server Compact SP1 部署 64 位应用程序运行时,ADO.NET 提供程序加载从 GAC (3.5.8080 版),但是从它是 3.5.5692.0 版本的应用程序文件夹加载本机 64 位组件。
- 没有版本不匹配情况下不启用每个策略。
示例方案 2
- 您在 64 位计算机上安装 SQL Server Compact 3.5 SP1 的 x86 版本。
- 然后,在安装 SQL Server Compact 3.5 SP1 的 x64 版本。
- 在同一计算机上,您可以下载并从 Web 安装 32 位版本的 SQL Server Compact 3.5 SP2。
- 您运行的 64 位应用程序使用 SQL Server Compact SP1 或 SP2。
- 当您运行该应用程序时,"无法加载我的 dll"的失败异常。
失败原因
- 安装 32 位版本的 SQL Server Compact 3.5 SP2 升级 SQL Server Compact 3.5 SP1 x 86 到 SQL Server Compact 3.5 SP2 的安装。这会导致 86 安装正在从 x 64 安装不同的压缩。
- 当在计算机上运行时使用压缩 SP1 或 SP2 的 64 位应用程序时,它将 ADO.NET 提供程序加载从 gac 中 (3.5.8080 版)。但是,在系统上找不到本机二进制文件相同的版本。因此,它将引发异常
- 已标记为答案 Amy PengMicrosoft employee, Moderator 2013年3月11日 5:04
全部回复
-
大家好:
我使用 SQL ServerCE 数据库。我使用 System.Data.SqlServerCe.dll 这个链接库来访问数据库。
现在出现一个异常:File version mismatch detected between
ADO.NET Provider and native binaries of SQL
Server Compact which could result in an incorrect
functionality. This could be due to the presence
of multiple instances of SQL Server Compact of
different versions. Please install SQL Server
Compact binaries of matching version [ADO.NET
Provider File Version = 3.5.5692.*, Native Binary
File Version = 3.5.8080.*]这个异常发现在Win7 x64位在操作系统上,在32位系统上没有出现该问题。
难道这是跟操作系统有直接关系吗?还是别的什么原因造成的?
谢谢!
欢迎交流指教 MSN:mangonic@hotmail.com
- 已合并 Sheng Jiang 蒋晟 2013年6月3日 20:49
-
MSDN 上有解决方案
在任何给定时间点,64 位计算机,对于 SQL Server Compact 的正确状态可能如下:- X86 和 amd64 Msi 安装。
- X86 和 amd64 Msi 是相同版本的。
因此,如果面临任何类似的问题,确保该计算机有两个基于 x86 和安装 amd64 Msi 的压缩它们是相同版本。万一不是,然后压缩 SP2 x86 和 x64 Msi 从下面的链接根据需要安装:----------------------------------------------------------------------------------------------------------------------------------------------------------------------
失败原因
- 安装 32 位版本的 SQL Server Compact 3.5 SP2 后,它会将 3.5.8080 版本的 ADO.NET 提供程序 (System.Data.SqlServerCe.dll) 添加到全局程序集缓存 (GAC) 和本机 x86 组件置于 %程序 Files(x86) %文件夹下。
- 私下将 SQL Server Compact SP1 部署 64 位应用程序运行时,ADO.NET 提供程序加载从 GAC (3.5.8080 版),但是从它是 3.5.5692.0 版本的应用程序文件夹加载本机 64 位组件。
- 没有版本不匹配情况下不启用每个策略。
示例方案 2
- 您在 64 位计算机上安装 SQL Server Compact 3.5 SP1 的 x86 版本。
- 然后,在安装 SQL Server Compact 3.5 SP1 的 x64 版本。
- 在同一计算机上,您可以下载并从 Web 安装 32 位版本的 SQL Server Compact 3.5 SP2。
- 您运行的 64 位应用程序使用 SQL Server Compact SP1 或 SP2。
- 当您运行该应用程序时,"无法加载我的 dll"的失败异常。
失败原因
- 安装 32 位版本的 SQL Server Compact 3.5 SP2 升级 SQL Server Compact 3.5 SP1 x 86 到 SQL Server Compact 3.5 SP2 的安装。这会导致 86 安装正在从 x 64 安装不同的压缩。
- 当在计算机上运行时使用压缩 SP1 或 SP2 的 64 位应用程序时,它将 ADO.NET 提供程序加载从 gac 中 (3.5.8080 版)。但是,在系统上找不到本机二进制文件相同的版本。因此,它将引发异常
- 已标记为答案 Amy PengMicrosoft employee, Moderator 2013年3月11日 5:04
-