1

我有自己的安装程序,我用它来安装我编写的几个应用程序。

我一直在更新这个程序以避免应用程序的数据文件更新进入用户的 VirtualStore,因为我读到这是一件“坏事”。我通过将程序和通用数据文件分别存储在正确的位置来做到这一点,而不是像 XP 时代那样将所有内容都粘贴在 Program Files 中。

我现在也在使用 SHGetFolderPath (是的,它已被弃用,但我仍然需要支持我的 XP 用户)来获取已知文件夹而不是拖网注册表,这是另一个“坏事”(我读过)。

我尝试做的下一件事是重写安装程序代码,以避免在向 HKLM 写入内容时将注册表重定向到 Wow6432Node,因为我认为这是另一个“坏事”。

然而,虽然我可以把应用程序特定的东西放在那里(比如安装文件夹,如果用户决定安装默认值以外的地方),杀手是需要把卸载信息放在 HKLM\Software\Microsoft\Windows \CurrentVersion\卸载。对于在 64 位系统上运行的 32 位内容,它被重定向到 Wow6432Node。我看不出有什么办法——这实际上可能吗?

4

2 回答 2

2

UAC 注册表重定向可以合理地描述为“坏事”,因为它专门设计用于提供与编写不当的软件的兼容性,即假定它将以管理员权限运行的软件。

WOW64 注册表重定向是另一种野兽;它旨在提供与正确编写的 32 位软件的兼容性。如果您的软件是 32 位的,并且没有特别需要支持 64 位,那么让它在仿真环境中按原样运行并没有错,包括允许将注册表设置重定向到 Wow6432Node。

如有必要,您可以绕过 WOW64 注册表重定向,但您不应该随意这样做,只有在有特定原因的情况下。如果您担心 WOW64 重定向,唯一好的选择是提供 64 位版本的程序。

于 2012-06-24T20:01:25.683 回答
0

这是一件非常“坏事”!微软通过将东西隐藏在另一个地方来解决安全问题!我创建了一个程序,在安装应用程序期间向用户询问一些附加参数(语言、课程目录)。我对程序进行了深入的测试,注册表项制作得很完美。然而,在设置过程中,条目被隐藏在某个奇怪的地方!如果微软想要重定向这些实体,至少应该设置一些选项。永远不要隐藏事物,并认为他们不会注意到,因为它是透明的。正确执行此操作将涉及设置选项,因此用户知道重定向!

于 2022-01-30T14:34:47.453 回答