Я создал компонент с условием DISABLEMSIUPGRADE, которое устанавливается, когда я устанавливаю MSI с помощью нашего ExternalUI. Однако 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 в Key.
// edit: Я немного поэкспериментировал и выяснил, что причина не в элементе CONDITION. Похоже, что если у меня установлена другая версия моей установки, ключ реестра не удаляется. Что могло быть причиной этого?