2011-11-09 32 views
1

我试图删除我们以前的产品的注册表中的某些文件关联关键字,以便当我们的新产品使用MSI进行安装时,它可以防止冲突并打开正确的产品。在使用自定义动作安装msi时删除注册表项

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

我想知道在使用自定义操作的MSI安装期间是否有其他方式来从注册表中删除密钥。

任何帮助事先appreciated.Thanks ..

+0

你使用什么MSI创作工具? –

+0

我正在使用VS 2008部署项目来构建MSI。 – Jignesh

+0

我对VS安装项目没有经验。将[此文章](http://msdn.microsoft.com/en-us/library/zdh2ws5k.aspx“如何:在注册表编辑器中添加和删除注册表项”)帮助您? –

回答

1

不要使用自定义操作,做事情的Windows安装程序可以处理。

而不是使用自定义操作,以删除注册表项,添加一行到RemoveRegistry TableName列设置为-的。

对于每个MSI创作工具,执行此操作的步骤各不相同。

+0

嗨阿列克谢,谢谢你的及时回应。我通过您提供的链接进行了阅读,并且说只有卸载组件时我们才会删除密钥,并且我们不会从客户端计算机上卸载以前的产品,但会删除文件关联,以便用户在打开文件时可以在我们的新产品中打开而不是旧版本。以前的版本是ClickOnce版本,而新版本是MSI。 – Jignesh

+0

是的,你说得对。您需要'RemoveRegistry'表而不是'Registry'表。我相应地编辑了我的答案。但是,通过查看[注册表编辑器属性](http://msdn.microsoft.com/en-us/library/bbxyfa24.aspx)上的文档,似乎在Visual Studio安装项目中不支持该文档。 –

相关问题