RemoveRegistryKey 不删除注册表项
RemoveRegistryKey not removing registry keys
我有一组由我的应用程序的先前版本设置的注册表值。它是永久设置的(来自 C++ 代码),并且在卸载应用程序时不会被删除。现在我正在尝试编辑 wix 安装文件以在新安装的应用程序中删除这些注册表项,但它不起作用。这是我的代码 -
<Component Id="RemoveOldRegKeys" Guid="9xxxxxx" KeyPath="yes">
<RemoveRegistryKey Id="RemoveAppInit64" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs" Action="removeOnInstall"/>
</Component>
我有一个功能引用了这个组件 -
<Feature Id="SmartCardFeature" Level="1">
<ComponentRef Id="RemoveOldRegKeys" />
</Feature>
我检查了安装日志,它似乎运行良好。这些是我得到的行 -
MSI (s) (A8:44) [14:00:43:435]: Executing op: RegOpenKey(Root=-2147483646,Key=SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs,,BinaryType=1,,)
MSI (s) (A8:44) [14:00:43:435]: Executing op: RegRemoveKey()
MSI (s) (A8:44) [14:00:43:436]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs 3: 2
我只是想知道我正在做的事情是否可行,如果可行,我错过了什么或做错了什么?
在此先感谢您的帮助。
AppInit_DLLs
是一个值(在 SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
键下),而不是键本身。你想要 RemoveRegistryValue
而不是。
我有一组由我的应用程序的先前版本设置的注册表值。它是永久设置的(来自 C++ 代码),并且在卸载应用程序时不会被删除。现在我正在尝试编辑 wix 安装文件以在新安装的应用程序中删除这些注册表项,但它不起作用。这是我的代码 -
<Component Id="RemoveOldRegKeys" Guid="9xxxxxx" KeyPath="yes">
<RemoveRegistryKey Id="RemoveAppInit64" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs" Action="removeOnInstall"/>
</Component>
我有一个功能引用了这个组件 -
<Feature Id="SmartCardFeature" Level="1">
<ComponentRef Id="RemoveOldRegKeys" />
</Feature>
我检查了安装日志,它似乎运行良好。这些是我得到的行 -
MSI (s) (A8:44) [14:00:43:435]: Executing op: RegOpenKey(Root=-2147483646,Key=SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs,,BinaryType=1,,)
MSI (s) (A8:44) [14:00:43:435]: Executing op: RegRemoveKey()
MSI (s) (A8:44) [14:00:43:436]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs 3: 2
我只是想知道我正在做的事情是否可行,如果可行,我错过了什么或做错了什么? 在此先感谢您的帮助。
AppInit_DLLs
是一个值(在 SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
键下),而不是键本身。你想要 RemoveRegistryValue
而不是。