我已经创建了一个条件为DISABLEMSIUPGRADE的组件,当我使用我们的ExternalUI安装MSI时它会被设置。但是,MSI不会删除UnInstall上的条目。我认为问题是由条件引起的,但我无法修复。WiX在卸载时不会删除注册表键
<Component Id="compMSI" Guid="5f18af6a-b839-4b4d-9d4f-79cf7826f749">
<Condition>DISABLEMSIUPGRADE</Condition>
<RegistryKey Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(var.PGuid)" Action="createAndRemoveOnUninstall">
<RegistryValue Name="DisplayName" Type="string" Value="$(var.ProductTitle)" />
<!-- ... -->
</RegistryKey>
</Component>
我甚至放在RemoveRegistryKey元素其他部件,以确保密钥被删除,但还没有做的工作...
我也试图存储和密钥读取DISABLEMSIUPGRADE财产。
//编辑:我试验了一下,发现CONDITION元素不是原因。我看起来像是如果我安装了另一个版本的安装程序,注册表项不会被删除。什么可能导致?
非常感谢你,它现在就像一个魅力;)。然而,在阅读您的博客文章后,我想如果建议始终使用*作为组件guid? – Simon 2010-07-26 06:25:38
如果可能,我建议使用Component/@ Guid =“*”。 WiX工具箱会告诉你什么时候不能。 – 2010-07-26 15:45:33