2012-04-13 4 views
0

У меня есть требование, как: ранних версий продукта уходит назад некоторые записи реестра, который должен быть очищен с помощью WIX 3.5 в визуальнойОпределение различных версий в реестре с помощью WIX 3.5

подход: Поиск в установленные версии продукта из реестра Затем выполните поиск в каждой записи реестра, которая не совпадает с версией версии продукта, и выполните действие реестра = удалить.

Как я могу это достичь? Как хранить все версии продукта при выполнении RegistrySearch в WIX?

Может кто-нибудь указать код этого?

ответ

0

Если ключи реестра уникальны для вашего продукта и их необходимо удалить при установке последней версии продукта, то нет необходимости проверять различные предыдущие версии. Просто удалите ключи реестра во время установки, независимо от того, что было ранее установлено. Если ключи уже существуют, они будут удалены, если нет, то не беспокойтесь.

+0

У меня есть сомнение: что происходит, когда мы удаляем программное обеспечение (созданное с помощью установочного экрана или WIX). Удаляет ли значения реестра, созданные в HKCR и HKLM ?. Если мы регистрируем COM-библиотеки dll и .net с помощью экрана установки или WIX, что происходит с записями реестра при удалении COM-библиотек? – rakheep

+0

Вообще говоря, если установщик записывает ключи reg, он удаляет их при удалении, по крайней мере, в зависимости от того, как был создан установщик. Что касается регистрации COM-библиотек, это зависит от того, как они зарегистрированы. InstallShield и Wix обе позволяют отмечать DLL как самостоятельную регистрацию (НЕ РЕКОМЕНДУЕТСЯ), и это может привести к сценариям, когда записи реестра не удаляются при удалении. У InstallShield и WiX есть инструменты для анализа DLL и получения информации Com для записи в реестр. Инструмент WiX называется Heat. – BryanJ

+0

... забыл упомянуть. Вывод, сгенерированный Heat, позволит вам удалить эти записи реестра COM при удалении. – BryanJ