2010-05-27 15 views
5

Yükleyici oluşturuyorum ve SQL Server Compact Edition 3.5 SP2'yi önyüklemek istiyorum. Sorun şu ki, HKLM\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v3.5\ENU\DesktopRuntimeVersion kayıt defteri anahtarını arıyorum. Bir problemin nedeni, 64 bit makineler için SQL CE'nin hem 32 bit hem de 64 bit yükleyicilerin çalıştırılmasını gerektirmesidir. 32 bit sürüm yüklenene kadar 64 bit sürümünü kuramazsınız.SQL Server Compact Edition 3.5 SP2 x64 yüklü olup olmadığını algılama?

32 bit sürüm yüklenir yüklenmez, kayıt defteri anahtarı doldurulur ve önyükleyicim dotNetInstaller, kayıt defteri anahtarının orada olduğunu ve x64 sürümünün hiçbir zaman yüklenmediğini algılar.

x32 sürümü yüklü olsa bile x64 sürümünün yüklü olup olmadığını nasıl anlamanız hakkında herhangi bir fikir var mı? yüklü sadece x86 çalışma zamanı ile

cevap

7

x64 sistemi: yüklü x86 ve x64 hem

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

x64 sistemi: SQL CE 3.5 SP2 MSBuild kullanarak yüklü olup olmadığını

[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

Mükemmel! Teşekkürler! –

+0

SP2 x64 paketinin, x86 paketi yüklenmedikçe yüklenmeyeceğini unutmayın - daha fazla bilgi için: http://erikej.blogspot.com/2010/05/how-to-detect-if-x64-sql-compact-35- sp2.html – ErikEJ

1

Bazı kod testi:

<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> 

Kayıt defteri değerlerinin kaçının kontrol edilmesi gerektiğinden emin değilim. Örneğin, Wow6432Node DesktopRuntimeServicePackLevel değeri yukarıdakilere ek olarak kontrol edilmeli mi?

İlgili konular