У меня большая проблема при попытке удалить приложение, которое я создал, установщик для использования WiX Toolset v3.11
Я использую шаблон «запомнить свойство» для сохранения некоторых свойств в разделе реестра. поэтому они могут быть прочитаны обратно во время удаления. Я приведу пример, но учтите, что их всего 5.
<Property Id="MyProperty" Value="DefaultValue">
<RegistrySearch Id="MyPropertyRegSearch" Root="HKLM" Key="Software\Company\Installer" Name="myproperty" Type="raw" />
</Property>
, тогда у меня есть компонент, который обрабатывает запись реестра.
<Component Id="InstallPropertiesWrite" Guid="*">
<RegistryKey Root="HKLM" Key="Software\Company\Installer" Action="createAndRemoveOnUninstall">
<RegistryValue Name="myproperty" Type="string" Value="[MyProperty]">
</RegistryValue>
</RegistryKey>
</Component>
все это прекрасно работает .
Моя проблема заключается в том, что при удалении в журнале установки появляется сообщение об ошибке:
MSI (s) (CC: D4) [14: 59: 26: 414 ]: Примечание: 1: 1402 2: HKEY_LOCAL_MACHINE32 \ Software \ Company \ Installer 3: 5 Информация 1402. Не удалось открыть ключ: HKEY_LOCAL_MACHINE32 \ Software \ Company \ Installer. Системная ошибка 5. Убедитесь, что у вас есть достаточный доступ к этому ключу, или обратитесь в службу поддержки.
Теперь я запустил монитор процесса, чтобы определить точный ключ и учетную запись, которая пытается получить доступ к этому ключу реестра. и это HKLM \ Software \ WOW6432Node \ Company \ Installer , что является правильным, поэтому я не верю, что это 32/64-битная проблема. Монитор процессов также обнаружил, что исполняемый файл msiexe c, пытающийся получить доступ к этому ключу, работает под пользователем NT AUTHORITY \ SYSTEM .
Я подтвердил, что SYSTEM учетная запись имеет «Полный доступ» разрешений (через regedit) для этого ключа, но я все еще получаю сообщение об ошибке.
Я потерял все, что может быть не так, любые предложения будут с благодарностью , спасибо заранее!
Я могу заставить его читать без ошибок, добавив разрешения для "Все" к необходимым ключам, и это работает, но мне кажется, это большой недостаток безопасности и что-то, чего я хочу избежать, если это возможно.
<Permission User="Everyone" GenericAll="yes" />