【问题标题】:Is there any advantage to building my .NET application with the 64 bit framework?使用 64 位框架构建我的 .NET 应用程序有什么好处吗?
【发布时间】:2009-04-09 12:22:04
【问题描述】:

我们使用 msbuild 在专用于构建的服务器上构建我们的 .NET 应用程序。我们正在迁移到具有 64 位 Windows 2003 的新硬件。我可以使用在 Framework64 中找到的 64 位版本的 msbuild 构建应用程序,或者我可以使用在 Framework 中找到的 32 位版本来构建它。使用 64 位版本的 msbuild 构建有什么优势吗?

【问题讨论】:

    标签: .net msbuild 64-bit


    【解决方案1】:

    不是特别没有。唯一真正的优势是 64 位版本的 msbuild 将能够利用更多的地址空间。就是这样。

    【讨论】:

    • 不相关(并且可能需要自己的问题),但是您是否知道 32 位 msbuild.exe 会成功构建但 64 位版本会因 System.AccessViolationException 而失败?
    • 我遇到了同样的事情。 Framework64/Msbuild 在 GenerateSerializationAssemblies 上失败,出现内存不足异常。
    【解决方案2】:

    不,但可能有一些缺点...如果您的应用程序使用任何 3rd 方驱动程序,请确保它们也符合 64 位标准。我们遇到了一个问题,我们将旧应用程序转换为 .net,并在 Build->General 上保留默认的“平台目标:任何 CPU”设置,而当我们将应用程序移到其开发机器上时,它运行良好一个64位服务器它死了。我们花了一些时间将其追溯到我们需要与外部数据源交互的第 3 方 ODBC 驱动程序。应用程序 DID 在 64 位平台上工作,我们只需要为 CPU 指定 x86,这有点违背目的。

    【讨论】:

      【解决方案3】:

      如果 MSBuild 正在运行依赖于 x64 库的测试;或者如果您的构建过程需要加载本机 x64 库,则需要使用 msbuild x64。

      我们必须使用 msbuild x64,因为我们正在运行 xunit 测试,而我们的一些库必须是 x64,因为它们调用原生 x64 库。

      理论上,我们可以使用不同的测试运行程序来启动 x64 进程来运行测试;但是使用 msbuild x64 是最简单的。

      https://xunit.github.io/docs/running-tests-in-msbuild.html 中所述:

      您可以在 MSBuild 中使用 <exec> 任务来运行控制台运行程序。如果您需要更多地控制在 32 位和 64 位环境中运行测试,您可以选择使用控制台运行程序。使用 MSBuild 运行程序时,您只能选择用于运行构建的 MSBuild 可执行文件的位数。

      请注意,这与编译无关 - 我们可以使用 msbuild x86 构建仅 x64 的项目。

      【讨论】:

        【解决方案4】:

        如果你打算做 asp.net 的一大优势是 IIS 可以访问更多的内存,这给了你更多的可扩展性。

        The dot not Rocks 伙计们对此做了一个节目
        http://www.dotnetrocks.com/default.aspx?showNum=341

        上面有很多非常好的信息。

        【讨论】:

        • 我不是在问我是否应该在 64 位框架下运行我的应用程序。我在问使用 64 位框架(Framework64 下的 msbuild.exe)来构建我的应用程序是否有任何优势。
        • 是的,如果你在 64 位环境中运行你的应用程序,当它是一个 32 位应用程序时,你会获得更多内存,但是当你将它编译到 64 位时,你会得到更多
        【解决方案5】:

        Biztalk 互操作程序集是不支持 64 位的程序集的一个很好的示例。因此,在做出这样的举动时/之后再次测试和测试。

        【讨论】:

        • 我不是在问我是否应该在 64 位框架下运行我的应用程序。我在问使用 64 位框架(Framework64 下的 msbuild.exe)来构建我的应用程序是否有任何优势。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-11-25
        • 2013-11-06
        • 1970-01-01
        • 2011-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多