2013-04-21 66 views
2

下面的代码无法创建在Windows 7无法创建注册表项使用维克斯

<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 

我预计ActionNone什么不Local。然后在日志文件中查找以查看未安装组件的原因。

PS:ForceCreateOnInstallForceCreateOnUninstall是没有必要的,除非您希望在该注册表项下创建随机值,您必须在卸载时删除该注册表项。

+0

组件:RegistryEntry1;安装:无;要求:无;操作:空 - 这是我检查详细日志文件时的输出。这可能是一个问题? – Smaug 2013-04-23 09:35:28

+0

通过它的'Id'和它的'Guid',在该Component的详细日志文件中看起来更高。应该有一个消息为什么Windows安装程序不允许它,这应该指出你在正确的方向来解决这个问题。 – 2013-04-23 13:16:50

+0

@RobMensching我有完全相同的问题,但Microsoft安装程序的详细日志不包含任何解释为什么它是请求:空。我无法在Guid上找到任何内容,也无法通过Id找到更多信息。我有标记为Absent =“Allow”和DefaultAction =“Install”的功能。如果我设置了Absent =“Disallow”,它就可以工作,但是当我没有管理员权限时,它会向我发送一个UAC框。在这种情况下,我会喜欢它跳过该功能,但如何? – 10100111001 2016-11-08 14:02:22