我一直在使用WiX項目一段時間,並且使用我的安裝程序初始化的註冊表值已被證明是「有趣的」。請在這裏尋找理智檢查。WiX RegistryValue設置爲空(Value =「」)
我有我的WiX的腳本下面一行,創建一個註冊表值:
"polling_manifest"=hex(7):00,00,00,00
:
<RegistryValue Type="multiString" Name="polling_manifest" Value="" />
這與看起來像這樣(從註冊表編輯器/出口)中的數據創建一個註冊表值
對我來說,它看起來像一個字符串[2],裏面有兩個空字符串。實際上,如果你喜歡的東西打開此註冊表值:
public static string[] pollingManifestValue
{
get
{
return (string[])RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64)
.OpenSubKey(AppSettingsGet("RegPathKeyConary"))
.GetValue(AppSettingsGet("rTISRegKeyPollingManifest"));
}
set
{
RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64)
.OpenSubKey(AppSettingsGet("RegPathKeyConary"), true)
.SetValue(AppSettingsGet("rTISRegKeyPollingManifest"), value);
}
}
pollingManifestValue回來爲空。因此,訪問這個構造的所有代碼都必須具有「首先檢查null,然後訪問屬性」類型的代碼。
我知道那些檢查是正確的,我不希望成爲一個更懶惰的程序員。我正在尋找那些比我更有經驗的人的想法和建議,因爲我覺得我沒有做到最好。任何代碼審查/使用指導是非常受歡迎的,我提前感謝你。
請注意,根據[訪問備用註冊表視圖](http://msdn.microsoft.com/zh-cn/library/aa384129.aspx),不建議直接使用'Wow6432Node'鍵。 OP使用'RegistryKey.OpenBaseKey()'指定適當的['RegistryView'](http://msdn.microsoft.com/en-us/library/microsoft.win32.registryview.aspx)訪問備用視圖的方法是非常好。 –