2010-05-27 207 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值?

相關問題