我创建了一个组件,并使用一个名为DISABLEMSIUPGRADE的条件来安装MSI时设置。然而,MSI在卸载时不会删除该条目。我认为问题是由条件引起的,但我无法解决它。
<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元素不是原因。看起来如果我安装了另一个版本的安装程序,注册表键就不会被删除。这是什么原因呢?