Windows installer 使用自定义操作安装msi时删除注册表项

Windows installer 使用自定义操作安装msi时删除注册表项,windows-installer,registry,key,Windows Installer,Registry,Key,我正在尝试删除注册表中以前产品的一些文件关联项,以便在使用MSI安装新产品时,可以防止冲突并打开正确的产品 我的问题是,当我尝试在MSI安装过程中使用自定义操作添加.exe时,它无法获取正确的注册表项(可能是出于安全原因,因为跟踪消息无法获取HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\文件夹中的所有子项 我想知道在MSI安装期间是否有其他方法可以使用自定义操作从注册表中删除注册表项 感谢您的帮助。请提前感谢。不

我正在尝试删除注册表中以前产品的一些文件关联项,以便在使用MSI安装新产品时,可以防止冲突并打开正确的产品

我的问题是,当我尝试在MSI安装过程中使用自定义操作添加
.exe
时,它无法获取正确的注册表项(可能是出于安全原因,因为跟踪消息无法获取
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\
文件夹中的所有
子项

我想知道在
MSI
安装期间是否有其他方法可以使用自定义操作从注册表中删除注册表项

感谢您的帮助。请提前感谢。

不要使用自定义操作来执行Windows Installer可以处理的操作

不要使用自定义操作来删除注册表项,而是在中添加一行,并将
Name
列设置为
-


每个MSI创作工具的步骤都不同。

您使用什么MSI创作工具?我使用vs 2008部署项目来构建MSI。我没有vs安装项目的经验。会帮助你吗?我想这是针对当前项目添加的键,但我们的问题是我们想删除上一个项目添加的键。如果我错了,请纠正我,因为我在整个MSI安装过程中是业余爱好者。是的,VS似乎只支持这种方式,或
注册表
表。在VS.Hi Alexey中创建MSI后,您可以使用JScript将
RemoveRegistry
表添加到包中,感谢您的及时响应。我通读了您提供的链接,它说只有在卸载组件时,密钥才会被删除,我们不是从客户端计算机卸载以前的产品,而是删除文件关联,这样当用户打开文件时,它将在我们的新产品而不是旧版本中打开。以前的版本是ClickOnce版本,而新版本是MSI。是的,你说得对。您需要
RemoveRegistry
表,而不是
Registry
表。我已相应地编辑了我的答案。然而,从上的文档来看,VisualStudio安装项目似乎不支持这一点。