我正在使用WiX 3.0。我正在嘗試在升級時預先保存所有註冊表設置。升級時保存註冊表設置
我發現下面的鏈接 http://www.mail-archive.com/[email protected]/msg28844.html
我更喜歡使用屬性和RegistrySearch方法,而不是自定義操作方法,因爲我認爲它看起來更簡單。
不幸的是,這種方法對我來說效果不好。我的項目有一些DWORD和SZ類型的註冊表值。對於所有DWORD類型的註冊表值,它在前面附加一個#。我檢查了WiX參考手冊。這是RegistrySearch的工作原理。
因此,升級後,結果是所有我的DWORD類型註冊表被更改爲SZ。該值看起來是一樣的,只是它在前面附加了一個#。例如,我在類型爲DWORD的註冊表值「LogLevel」中獲得了值2。升級後,我在同一位置使用SZ類型的註冊表值「LogLevel」獲得值「#2」。
下面是代碼片段
<Property Id='LOG_LEVEL' Value='Information'>
<RegistrySearch Id='LogLevelRegistry' Type='raw' Root='HKLM' Key='Software\Company\Product' Name='LogLevel' Win64='$(var.Win64)'/>
</Property>
<Component Id="RegistryKey">
<RegistryKey Root='HKLM' Key='Software\Company\Product' Action='createAndRemoveOnUninstall'>
<RegistryValue Type='int' Name='LogLevel' Value='[LOG_LEVEL]'/>
</RegistryKey>
</Component>
我不知道是否有任何字符串函數,可以幫助我剪掉從LOG_LEVEL屬性「#」我把它放回去了。還是有什麼更聰明的方法來保存註冊表鍵進行升級時?我應該採用自定義操作方法嗎?
謝謝,我今天會檢查出來 – 2010-12-10 15:22:47