Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ProgramFilesX86 SpecialFolder在Windows XP等系统上做什么?_C#_.net_Special Folders - Fatal编程技术网

C# ProgramFilesX86 SpecialFolder在Windows XP等系统上做什么?

C# ProgramFilesX86 SpecialFolder在Windows XP等系统上做什么?,c#,.net,special-folders,C#,.net,Special Folders,因为我在上找不到任何明确说明:ProgramFilesX86enum值在32位系统上返回什么 开发环境 请注意:在我的组织中,每当我想测试东西时,我不能只让机器站起来。这就是我问社区的原因。我甚至无法访问32位ISO来构建虚拟机——所以请理解,我在这个组织中有一些限制 Windows 7 64位 生产环境 在生产中,我不知道他们是运行32位还是64位系统,这很可能是一种混合。但是我知道操作系统的列表 视窗7 Windows Vista 视窗XP 客观的 获取正确的程序文件目录,以便动态

因为我在上找不到任何明确说明:
ProgramFilesX86
enum值在32位系统上返回什么


开发环境 请注意:在我的组织中,每当我想测试东西时,我不能只让机器站起来。这就是我问社区的原因。我甚至无法访问32位ISO来构建虚拟机——所以请理解,我在这个组织中有一些限制

  • Windows 7 64位
生产环境 在生产中,我不知道他们是运行32位还是64位系统,这很可能是一种混合。但是我知道操作系统的列表

  • 视窗7
  • Windows Vista
  • 视窗XP
客观的 获取正确的程序文件目录,以便动态启动应用程序

已知变量
  • 该应用程序使用MSI安装,并且将使用默认选项安装,因此它将安装在
    程序文件
    目录中
  • 该应用程序是32位应用程序,因此在64位系统上它将使用
    程序文件(x86)
    文件夹,但在32位系统上它将使用标准
    程序文件
    目录

  • 谢谢大家

    它返回“程序文件”。由于您正在使用MSI安装,您可能会考虑使用安装程序API(MSILCOCATCOMPONMENT等)来定位您的程序,而不是假定它在预期位置。

    < P>在我的7个32位系统>代码>程序文件x86< /Calp>返回<代码> C:\程序文件< /代码>(没有尾随斜杠)。 的“备注”部分包含一个方便的表格,提供您所需的信息(从非托管的角度)。在这里复制它很难:

    OS      App     KNOWNFOLDERID               Default                             CSIDL
    32 bit  32 bit  FOLDERID_ProgramFilesX86    %SystemDrive%\Program Files         CSIDL_PROGRAM_FILESX86
    64 bit  64 bit  FOLDERID_ProgramFilesX86    %SystemDrive%\Program Files (x86)   CSIDL_PROGRAM_FILESX86
    64 bit  32 bit  FOLDERID_ProgramFilesX86    %SystemDrive%\Program Files (x86)   CSIDL_PROGRAM_FILESX86
    

    32位XP:空字符串:(
    32位Vista:“C:\Program Files”
    32位Win7:未测试,可能与Vista相同
    64位Win7:“C:\Program Files(x86)”


    我对64位XP不太清楚,我自己也很好奇。

    @BaliC,我在公司里没有访问32位系统的权限——我工作的地方不是这样的——我不能只安装机器——所以我希望社区能帮助我。很简单。抱歉,我刚刚意识到并删除了我的评论,我在一个相关的网站上找到了你的答案问题,检查评论“我不容易访问我的组织内部的32位系统——我工作的地方不是这样”——你的公司是讨厌开发人员,还是只是不想让他们有效率?@CodeCaster,我听你说得很清楚,兄弟!这应该是公认的答案。特别是32位XP部分。
    OS      App     KNOWNFOLDERID               Default                             CSIDL
    32 bit  32 bit  FOLDERID_ProgramFilesX86    %SystemDrive%\Program Files         CSIDL_PROGRAM_FILESX86
    64 bit  64 bit  FOLDERID_ProgramFilesX86    %SystemDrive%\Program Files (x86)   CSIDL_PROGRAM_FILESX86
    64 bit  32 bit  FOLDERID_ProgramFilesX86    %SystemDrive%\Program Files (x86)   CSIDL_PROGRAM_FILESX86