【发布时间】:2015-07-12 13:32:57
【问题描述】:
我有一个以 x86 模式(在 c# 中)编译的应用程序,我需要从中访问 64 位程序文件文件夹(当然是 64 位 Windows)中存在的某个文件。
我不想在我的应用程序中将C:\Program Files 硬编码为字符串,因为一些目标计算机可能将 Windows 安装在不同的驱动器中,或者可能使用其他语言。
我遇到的问题是使用 Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) 返回 x86 风格而不是所需的目录,除非我在 64 位模式下编译我的程序。出于好奇,我该怎么做才能避免这样做?
【问题讨论】:
-
将项目的 Build Properties 更改为 Build -
Platform target = AnyCpu如果您不熟悉则Right click on the project, then select properties, from there click the Build node on the Left and change x86 to AnyCPU -
@MethodMan 这是我项目中已经选择的选项。还有其他建议吗?
-
Environment.GetEnvironmentVariable("ProgramW6432")怎么样 -
这是你自己的程序还是别人写的程序?通常,当我同时编写 32 位和 64 位应用程序时,我会将它们之间的所有共享文件存储在
CommonApplicationData中。 -
这是来自 MSDN 的 Environment Variables 的完整列表。