自CTP以来,我一直在使用Windows 7的64位版本,并且在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
。现在,这些引用在将它们放在的Windows 7计算机上已损坏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位应用程序可以始终使用该环境变量,并且不需要基于它们所运行的操作系统的任何条件逻辑。
%ProgramFiles%
环境变量是否可以解决此问题。不确定如何处理x86 / 64bit差异。