2012-09-12 32 views
1

在我的WiX的安裝程序我有這些特性讓SQL數據路徑如何獲得SQLDataRoot註冊表設置在威克斯安裝64位

<Property Id="SQLSERVERINSTANCENAME" > 
    <RegistrySearch Id="SqlServerInstanceName" Root="HKLM" Key="SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" Name="MSSQLSERVER" Type="raw"/> 
</Property> 

<Property Id="SQLSERVERDATAPATH" > 
    <RegistrySearch Id="SqlServerDataPath" Root="HKLM" Key="SOFTWARE\Microsoft\Microsoft SQL Server\[SQLSERVERINSTANCENAME]\Setup" Name="SQLDataRoot" Type="raw"/> 
</Property> 

,但它不能在64位Windows上工作2008服務器R2

回答

0

嘗試添加Win64="yes",這將告訴RegistrySearch查看註冊表的64位。應該補充,這將告訴搜索只查找在64位的一部分,如果你需要它,像這樣同時搜索,然後使用Win64="$(var.Platform)"並指定平臺:

<!-- Define platform-specific names and locations --> 
<?if $(var.Platform) = x64 ?> 
<?define ProductName = "$(var.ProductName)" ?> 
<?define Win64 = "yes" ?> 
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?> 
<?define PlatformCommonFilesFolder = "CommonFiles64Folder" ?> 
<?define UpgradeCode = "98CECA6F-D312-466E-B04F-088ECD9CFCA2" ?> 
<?else ?> 
<?define ProductName = "$(var.ProductName) (x86)" ?> 
<?define Win64 = "no" ?> 
<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?> 
<?define PlatformCommonFilesFolder = "CommonFilesFolder" ?> 
<?define UpgradeCode = "6B968607-8D3E-45AF-A590-253E54EE4617" ?> 
<?endif ?> 
+0

謝謝,這是非常有用的。關於註冊表問題,我添加了Win64 = yes屬性,但值爲空。 – gangt

+0

Win64 = yes很好。以前我設置了Execute =「deferred」,我刪除了它並且工作。 – gangt

相關問題