2010-05-27 159 views
5

我正在构建一个安装程序,我想引导SQL Server Compact Edition 3.5 SP2。问题是我正在寻找注册表项HKLM\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v3.5\ENU\DesktopRuntimeVersion。造成问题的原因是,对于64位机器,SQL CE要求运行32位和64位安装程序。在安装32位版本之前,您无法安装64位版本。检测是否安装了SQL Server Compact Edition 3.5 SP2 x64?

安装32位版本后,注册表项被填充,我的引导程序dotNetInstaller检测到注册表项存在,并且从未安装x64版本。

有关如何确定是否安装了x64版本(即使安装了x32)的任何想法?安装

回答

7

的x64系统仅适用于x86运行:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server Compact Edition\v3.5\ENU] 
"DesktopRuntimeVersion"="3.5.8080.0" 
"DesktopRuntimeServicePackLevel"="2" 

的x64系统,x86和x64的安装:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server Compact Edition\v3.5\ENU] 
"DesktopRuntimeVersion"="3.5.8080.0" 
"DesktopRuntimeServicePackLevel"="2" 
"DesktopRuntimeVersion_x64"="3.5.8080.0" 
+0

完美!谢谢! – 2010-05-31 19:21:53

+0

请注意,SP2 x64软件包将不会安装,除非安装了x86软件包 - 更多信息:http://erikej.blogspot.com/2010/05/how-to-detect-if-x64-sql-compact-35- sp2.html – ErikEJ 2010-06-03 06:22:05

1

一些代码测试使用的MSBuild SQL CE 3.5 SP2是否安装:

<PropertyGroup> 
    <SSCE35sp2Installed Condition="'$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v3.5\[email protected])' == '3.5.8080.0' And '$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v3.5\[email protected])' == '2'">true</SSCE35sp2Installed> 
    <SSCE35sp264Installed Condition="'$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server Compact Edition\v3.5\[email protected]_x64)' == '3.5.8080.0'">true</SSCE35sp264Installed> 
</PropertyGroup> 

我不知道有多少注册表值需要检查。例如,除了上述之外,是否应该检查Wow6432Node DesktopRuntimeServicePackLevel值?

相关问题