2013-04-21 2 views
2

Следующий код не удалось создать запись реестра на Windows 7.Не удалось создать запись реестра с помощью WiX

<Component Id='RegistryEntry1' Guid='1BECF977-A7A1-448E-8EC8-843A10E7F6D7' Directory='TARGETDIR'> 
    <RegistryKey Root='HKLM' 
       Key="SOFTWARE\Microsoft\Microsoft SDKs\Silverlight\v5.0\AssemblyFoldersEx\SimpleMvvmToolkit_2012.SL" 
       ForceCreateOnInstall="yes" 
       ForceDeleteOnUninstall="yes">    
     <RegistryValue Type="string" 
        Value="C:\Program Files\SimpleMvvmToolkit_2012\Binaries\Silverlight\v5.0\" 
        KeyPath="yes"/> 
    </RegistryKey> 
</Component> 

Registry Snap

Что может быть проблема?

ответ

0

Если ключ реестра не был создан, скорее всего, компонент не был установлен. Проверьте подробный лог-файл из установки, например:

msiexec /i path\to\your.msi /l*v install.txt 

В этом файле журнала вы увидите строки вроде:

Component: RegistryEntry1; Installed: Absent; Request: Local; Action: Local 

Я ожидаю, что Action будет None или что-то не Local. Затем найдите в файле журнала, чтобы узнать, почему компонент не был установлен.

PS: ForceCreateOnInstall и ForceCreateOnUninstall не нужны, если вы не ожидаете, что в этом разделе реестра вы должны удалить случайные значения, которые необходимо удалить при удалении.

+0

Компонент: RegistryEntry1; Установлено: Null; Запрос: Null; Действие: Null. Это был результат, когда я проверял подробный файл журнала. Возможно, это может быть проблемой? – Smaug

+0

Посмотрите выше в подробном файле журнала для этого «Компонента» как с помощью 'Id', так и с помощью' Guid'. Должно быть сообщение о том, почему установщик Windows запретил его, и это должно указывать вам в правильном направлении, чтобы исправить проблему. –

+0

@RobMensching У меня такая же проблема, но подробный журнал установщика Microsoft не содержит никаких объяснений относительно того, почему это был запрос: Null. Я не могу найти что-либо в Руководстве и больше информации от Идентификатора. У меня есть функция, отмеченная как Absent = "Allow" и DefaultAction = "Install". Если я установил Absent = «Disallow», он будет работать, но тогда он будет бросать мне UAC, когда у меня нет прав администратора. в этом случае мне хотелось бы просто пропустить эту функцию, но как? – 10100111001

Смежные вопросы