0

所以我们得到了这个 32 位软件包,它安装在 Win XP 和 Win 7 机器上。

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

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

当然,当您安装新版本时,它会再次被清除,作为开发人员,有时我们每天要安装和卸载 5-6 个版本。我已经通过从安装程序中删除它们并构建和安装它来确认它是那些特定的注册表设置,并且“新文件夹”选项很高兴地保持在原位。

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

4

1 回答 1

0

Heat simply captures the registry keys written during the DllRegisterServer() call. If you are not getting the registry keys you expect, then look at the DllRegisterServer() code to see what it is doing. Also, you may find it more useful to capture the registry keys once, verify they are correct then not use heat.exe any longer.

That's my preferred approach.

于 2012-02-20T21:05:59.647 回答