为什么 Windows 7 会在 Program Files (x86) 文件夹中安装 64 位应用程序?我可以改变行为吗?

Cod*_*nis 12 windows-7 64-bit installation

自 CTP 以来,我一直在使用 64 位版本的 Windows 7,并且遇到了安装在C:\Program Files (x86)文件夹中的应用程序的一些问题。无论如何,拥有 2 个单独的 Program Files 目录的目的是什么?

我安装的每个程序都进入了该C:\Program Files (x86)文件夹。应用程序是 32 位还是 64 位似乎并不重要。为什么不放置 64 位应用程序C:\Program Files

有没有办法将默认值C:\Program Files改为?如果我把所有东西都放进去会搞砸C:\Program Files吗?

如果为 64 位应用程序设置一个单独的文件夹确实有一些好处,那么似乎更明智的默认设置是C:\Program Files用于 x86 应用程序并C:\Program Files (x64)为新的 64 位应用程序创建一个新文件夹。这将有助于保持向后兼容性。我是一名软件开发人员,我的一些项目包含对C:\Program Files. 现在,这些引用在将它们放入C:\Program Files (x86). 我什至试图将安装程序中的目标位置更改为C:\Program Files,但这被忽略了,应用程序还是进入C:\Program Files (x86)了。

这非常令人沮丧,因为我需要在 32 位和 64 位机器之间共享源代码,而且我不想弄乱某些在不同机器上以不同方式设置这些库的路径的配置文件。

关于环境变量的编辑:(为简单起见,仅使用变量的默认英文值。)在 64 位机器%ProgramFiles%上将是,C:\Program Files而全新的变量%ProgramFiles(x86)%将是C:\Program Files (x86). 因此,如果您有一个 32 位程序需要找到安装它的文件夹路径,则需要检查它是在 32 位还是 64 位版本的 Windows 上运行,以便知道要使用哪个环境变量。任何没有考虑到这一点而编写的 32 位应用程序都需要更新才能在 64 位机器上正常工作。所以即使使用环境变量,向后兼容性也被破坏了。

此外,%ProgramFiles(x86)%在 32 位版本的 Windows 上不存在。如果是这样,那么 32 位应用程序可以始终使用该环境变量,并且不需要任何基于它们运行的​​操作系统的条件逻辑。

Wil*_*sum 7

原因很简单,许多较旧的安装程序要么不了解新的文件结构,而是将标准程序文件目录中的所有内容都塞进去,要么您正在查看具有一些 32 位组件的智能程序,这些组件被复制到那里。

最好的办法是下载一个新程序——比如x64 Winrar,然后看看它的安装位置,以排除你的机器有问题。

至于把东西弄乱 - 它可以,但它真的取决于程序,没有一个答案适合所有......一些只有几个文件的更小、更紧凑的程序应该没有问题,如果你谈论 Office 、Adobe 或任何其他“套件”或大型程序,它很可能会失败,因为它们有许多跨架构的共享组件。