我的应用程序有时会在执行期间创建一个特定的注册表值,即不在安装时。此值位于我不想删除的注册表项中;我只想删除我创建的值。因为它不是在安装时创建的,所以Windows安装程序在卸载时不会自动删除它。如果MSI存在,我可以在MSI中删除该值?
Registry表似乎没有此选项。这是否意味着我必须编写自定义操作?如果是这样,任何人都有任何例子吗?
我正在使用Wise Windows Installer Edition来创建MSI。
同时发布了here。
答案 0 :(得分:1)
抱歉,您需要自定义操作。
答案 1 :(得分:0)
您需要执行自定义操作。
我最后通过在Deferred部分中的WriteRegistryValues之后放置自定义操作来实现此功能。
删除密钥的.vbs是这样的:
const HKLM = &H80000002
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Mozilla\Firefox\Extensions"
strValueName = "myext@myco.com"
oReg.DeleteValue HKLM,strKeyPath,strValueName