Windows 7 64位程序文件环境变量

9
有人知道当使用“ProgramFiles”变量时,Windows 7是否会自动切换回“ProgramFiles(X86)”环境变量吗?
我们遇到这样的情况:开发人员使用Visual Studio,并且proj文件使用“$(ProgramFiles)”引用程序集。机器是64位的,“ProgramFiles”变量指向“C:\Program Files”,但程序集在“C:\Program Files (X86)”中,但项目仍能够构建。如果使用字面上的“C:\Program Files”路径,则无法构建项目。编译器报告找不到程序集。

4
汉斯的回答是正确的,你可以在这里找到更多信息:http://msdn.microsoft.com/en-us/library/aa384232%28VS.85%29.aspx - Hans Olsson
1个回答

6

是的,Windows会自动将32位程序对文件夹和文件的访问映射到c:\program files (x86)。Visual Studio和MSBuild都是32位程序。同样的情况也适用于c:\windows\system32和c:\windows\syswow64。


谢谢。这就是我想的。 - PhilBrown
1
除了使用环境变量%ProgramFiles%自动提供正确路径取决于进程的位数之外,我不认为这是真实的。 OP的情况之所以有效是因为VS是32位的,而$(ProgramFiles)指的是环境变量%ProgramFiles%,对于64位操作系统上的32位进程,它将是C:\Program Files (x86)。如果我从32位进程中启动位于C:\Program Files\Acme\foo64.exe的64位exe,则操作系统会将路径切换到C:\Program Files (x86)\Acme\foo64.exe - Keith Hill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接