Wix heat.exe在Windows 7 32位应用程序中为上下文菜单DLL生成不正确的片段

问题描述:

因此,我们已经在Win XP和Win 7机器上安装了这个32位软件包。Wix heat.exe在Windows 7 32位应用程序中为上下文菜单DLL生成不正确的片段

我正在看的当前问题是,在安装部分软件包时,会写入注册表值来将软件包中的可执行文件添加到Windows上下文菜单中。这些注册表值是由来自作为进程一部分的dll(即可执行文件的dll)热量生成的wix片段的一部分。

问题是,虽然它在windows xp嵌入式上工作,但在Windows 7上,应用程序不仅不会显示在上下文菜单中,还会破坏某些内容,以便从所有上下文中删除“新建文件夹”选项菜单。卸载应用程序不起作用,但可以通过从本网站添加注册表设置来解决问题:http://social.technet.microsoft.com/Forums/en-IE/w7itprogeneral/thread/97de8a2a-12f2-4381-a409-a78f4ae551cf

当然,当您安装新版本时,它会再次被删除,而作为开发人员,重新安装和卸载5-6建立一天。我已经通过从安装程序中删除它们并构建并安装它,确认了这些特定的注册表设置,并且“新建文件夹”选项可以愉快地保留它的位置。

所以我的问题是:是否有生成有效的注册表值的问题,写一个32位应用程序/ DLL要添加到Windows 7的上下文菜单? (为了完整的披露,我使用的是win7 64位,但我们在win7 32位上也有同样的问题,但我们还没有尝试vista)

Heat只是捕获在DllRegisterServer ()调用。如果您没有获得您期望的注册表项,请查看DllRegisterServer()代码以查看它正在执行的操作。此外,您可能会发现一次捕获注册表项更有用,验证它们是否正确,然后不再使用heat.exe。

这是我的首选方法。