【问题标题】:Visual Studio 2008 Build question x64 vs x86Visual Studio 2008 构建问题 x64 与 x86
【发布时间】:2023-03-14 20:46:01
【问题描述】:

我在我的 x64 机器上使用 Visual Studio 2008 编写了一个应用程序。该应用程序将发送给某人,我有两个问题需要回答。

  1. 他们需要安装什么要求。我假设 .NET 3.5 可再发行。还有别的吗? (应用程序不调用任何外部依赖项)。

  2. 这是我无法找到答案的真正问题。我已经使用“Any CPU”选项在我的 x64 机器上开发和构建了应用程序(特别是与 x64 或 x86 相比)。 这会在 32 位机器上运行吗? (我没有要测试的)。还是我需要专门为 x86 构建它才能在 32 位机器上运行它?

非常感谢, 布雷特

【问题讨论】:

    标签: .net visual-studio x86 64-bit


    【解决方案1】:

    您应该使用corflags 工具

    corflags myAssembly.dll
    

    如果

    PE=PE32 and 32BIT= 0 
    

    它将以 32 位作为 x86 应用程序运行,在 64 位作为 x64 应用程序运行

    如果您使用“任何 CPU”编译您的应用程序,您的 PE 将为 PE32,您的 32BIT 将为 0

    For your reading pleasure

    【讨论】:

      【解决方案2】:
      1. 如果您真的没有任何外部依赖项,是的,只需要 .Net 3.5,甚至可能不使用该捆绑包,具体取决于您的客户使用的 Windows 版本(Windows 7 已内置 -例如)。
      2. 是的。解决方案平台选择列表完全按照所说的进行。如果您选择“任何 CPU”,您的应用程序应该在 x86 或 x64 CPU 上运行。

      【讨论】:

        【解决方案3】:

        是的,您的应用程序将使用 PE32 标头进行编译,这意味着它将在 32 位或 64 位(作为 32 位应用程序)Windows 操作系统上运行。但是,您的用户必须安装正确版本的 .Net Framework,这取决于您的编译器设置。

        【讨论】: