【问题标题】:Why we need 64 bit installer to build 64 bit setup?为什么我们需要 64 位安装程序来构建 64 位设置?
【发布时间】:2013-06-13 08:24:52
【问题描述】:

我有一个 32 位应用程序,它在 32 位和 64 位环境下都能正常工作。它以“混合平台”模式构建在 VS2010 之上。现在,我被要求专门为 X64 构建一个设置。我不知道为什么我们需要重新构建设置,即使我们已经有一个在 X64 上运行良好的设置?为什么会这样?

【问题讨论】:

  • 所以这个新的 64 位设置仍将安装 32 位程序,对吗?您说的有些矛盾——您说它是一个 32 位应用程序,但也说它处于“混合平台”模式。如果我理解正确,这意味着它将在 x86 OS 位下作为 32 位程序运行,在 x64 下作为 64 位程序运行。
  • @matthew:很抱歉,但我不太了解为不同平台构建设置。我解释了我现在所处的确切情况,并且我的一些高级将其配置为“混合平台”。 “所以这个新的 64 位设置仍将安装 32 位程序,对吗?”是的。 “你说的有些矛盾——你说它是一个 32 位应用程序,但也说它处于‘混合平台’模式”。我不知道“混合平台”提供了这种灵活性。 “如果我理解正确,这意味着它将作为 x86 操作系统位下的 32 位程序运行,就像 x64 下的 64 位程序一样。”是的,你说得对。
  • 我同意 Hans Passant...除非有特定且可证明的需要,否则不需要仅用于 64 位的第二个安装程序。一方面,我从来不需要做这样的事情。我想我会质疑这个需要及其背后的原因。

标签: c# .net visual-studio-2010 64-bit installation


【解决方案1】:

您不需要 64 位安装程序,您只需告诉安装程序您要安装 64 位程序。这是一个相当大的问题,32 位程序受到以下因素的严重影响:

  • 注册表重定向,32 位程序重定向到 SOFTWARE\Wow6432Node 键
  • 文件系统重定向,最明显的是 32 位程序被重定向到 c:\program files (x86)
  • 影响您的选择,如果取决于位数,您可能需要选择另一个 EXE 或 DLL。这主要是包含非托管代码的可执行文件的问题,如果它们要在 64 位操作系统上运行,则需要以不同的方式构建它们。

前两个项目符号是对安装程序影响最大的项目符号,它需要注意位数以便写入正确的注册表项和目录。

【讨论】:

    【解决方案2】:

    我不知道所有的背景,但我想说的是希望你制作 X64 只是为了在程序上获得更快的速度,x32 只能使用 3GB 内存,x64 可以使用更多..

    【讨论】:

    • 更多内存!= 更快的速度。更多 RAM 确实意味着更高速度的唯一情况是您的程序需要它,但您的系统没有它。
    • 是的,这就是为什么我说 x32 只能使用 3GB 内存,即使你的电脑有 32GB(或者我不知道 max 和 linux)
    • 是的,但在这种情况下,使用 3GB 或 30GB 并不一定会使程序更快。如果 PC 只有 1GB 可用 RAM 而您的程序需要 3GB,那么它将使用剩余 2GB 的存储空间,这非常慢。但这与 32 位与 64 位无关
    • 你完全正确。但我希望 x64 不仅仅提供使用更多内存的可用性,但我不确定
    【解决方案3】:

    如果您有一个在 64 位操作系统上运行的 64 位应用程序,那么与在同一操作系统上运行的 32 位应用程序相比,您可以获得许多优势。

    1 - 与在 64 位操作系统上运行的 32 位应用程序相比,在 64 位操作系统上运行的 64 位应用程序可以使用更多的内存/RAM

    2 - 在 64 位应用程序中,您可以执行一次消耗 64 个寄存器的操作,与消耗 32 个寄存器的 32 位应用程序相比,这可以使您的应用程序更快

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-03
      • 2010-12-11
      • 1970-01-01
      • 2015-11-21
      • 1970-01-01
      • 1970-01-01
      • 2020-05-28
      相关资源
      最近更新 更多