Я работаю над проектом WiX в течение некоторого времени, и использование значений реестра, которые инициализирует моя установка, оказалось «интересным».Я ищу проверку работоспособности, пожалуйста.
У меня есть следующая строка в моем скрипте WiX, которая создает значение реестра:
<RegistryValue Type="multiString" Name="polling_manifest" Value="" />
Это создает значение реестра с данными, которыевыглядит следующим образом (из regedit / export):
"polling_manifest"=hex(7):00,00,00,00
, что для меня выглядит как строка [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 возвращается как ноль.Следовательно, весь мой код, который обращается к этой конструкции, должен иметь код типа «сначала проверять на нулевое значение, а затем обращаться к свойствам».
Я понимаю, что эти проверки - правильная вещь, и я не ищучтобы быть более ленивым программистом здесь.Я ищу мысли и предложения от более опытных, чем я, с глубоким волшебством WiX, потому что мне кажется, что я делаю это не оптимально.Любое руководство по проверке кода / использованию приветствуется, и я заранее благодарен вам.