2010-10-31 2 views
1

Существует определенное значение реестра, которое мое приложение иногда создает во время выполнения, то есть НЕ при установке. Это значение находится в ключе реестра, которое я не хочу удалять; Я просто хочу удалить значение, которое я создал. Поскольку он не создан при установке, он не удаляется автоматически при удалении установщиком Windows. Что я могу сделать в MSI, чтобы удалить это значение, если оно существует?Как удалить один реестр VALUE при удалении MSI?

В таблице Registry нет такой опции. Означает ли это, что я должен написать собственное действие? Если да, у кого-нибудь есть примеры?

Я использую Wise Windows Installer Edition для создания MSI.

Также опубликовано here.

+0

Это awfull, что MSI не обеспечивают стандартную технологию для удаления RegistryValue. Как, например, мы должны удалить HKCU/Windows/Current/Version/Run/My Program –

ответ

0

Вам необходимо выполнить собственное действие.

Я закончил реализацию этого с помощью специального действия, помещенного после WriteRegistryValues ​​в разделе Отсрочка.

В .vbs для удаления ключа, как это:

const HKLM = &H80000002 
strComputer = "." 
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv") 
strKeyPath = "SOFTWARE\Mozilla\Firefox\Extensions" 
strValueName = "[email protected]" 
oReg.DeleteValue HKLM,strKeyPath,strValueName 
1

Извините, вам потребуется индивидуальное действие.

+0

К сожалению, это для удаления записей в реестре, когда компоненты _installed_ не удалены. – Rory

+0

Вы правы. Я думал по строкам таблицы RemoveFile, которая имеет атрибут msidbRemoveFileInstallModeOnRemove. Я не знаю, что это за значение реестра, но было бы хорошо оставить его при удалении, но убедитесь, что он удаляется при следующей установке? Из перспективы выполнения приложений я думаю, что результат будет таким же. Или это значение реестра управляет чем-то на уровне ОС, а не с самим приложением? Я знаю, чтобы написать новое значение во время удаления, мне понадобилось настраиваемое действие. –

+0

Значимость регистрации моего программного обеспечения как расширения с Firefox, так что нетрудно было бы оставить его там, поскольку это влияет на другое программное обеспечение. Обычное действие будет! – Rory

Смежные вопросы