安装程序问题:“Program Files”还是“Program Files(x86)”?

9
我正在安装一个完全由C#编写的.NET应用程序。安装程序(InnoSetup)总是希望将应用程序安装到Vista x64中的“Program Files(x86)”文件夹中,我认为这是因为安装程序本身只是32位的。(如果我错了,请纠正我)以下是我的问题:
  1. 在x86文件夹中是否以某种我不知道的方式影响我的应用程序?
  2. 我认为尽管在x86文件夹中,我的应用程序仍将作为真正的x64应用程序运行,这是正确的吗?
  3. 让安装程序将应用程序放置在“Program Files”文件夹中是否有任何优势?
谢谢!
3个回答

8
  1. 可能不需要。放在(x86)文件夹中可以使旧应用程序更容易找到它(如果需要),因为它们通过环境变量引用它。

  2. 是的。只要您的EXE标记为“任何CPU”,它就应该被JIT编译为64位。

  3. 这样会更清晰,表明它是64位。


非常好,谢谢。我原本以为没有区别,但是在MSDN上找不到任何文档。我也不需要其他应用程序来找到它,而且既然它能工作,我也不需要尝试移动它来破坏它。 :) 我现在就把它保持原样。谢谢! - Jon Tackabury

3

参考: 安装模式: 32位 vs. 64位.

  1. 绝对不是。你可以把程序放在C:\Users\All Users\Desktop目录下,你的应用程序就能正常运行。

  2. 正如Jeff所提到的,如果你编译为“任何CPU”托管代码,这些代码可以在32位或64位框架上运行。也许是因为代码可以在32位上运行,所以安装程序选择了32位的Program Files目录。我对InnoSetup并不了解。

    参考:编译为64位的优势32位与64位的注意事项。在选择“全部64位”时需要考虑的一些问题。即使你这样做了,也要问自己一个问题:“你确定吗?”...

  3. 我不建议将32位程序放在64位安装目录中,但这只是出于惯例。你应该能够在安装程序脚本中配置默认的安装路径。


0

我能想到的唯一问题是,如果您硬编码了任何值来操作该文件夹中的文件。但我相信您没有 :)


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