gpt4 book ai didi

.net - .NET 程序集和 CPU 架构之间的关系是什么?

转载 作者:行者123 更新时间:2023-12-01 02:21:32 27 4
gpt4 key购买 nike

.NET有什么关系组装和“位数”或正确地说,CPU 架构?我以为.NET程序编译成CIL (字节码),并且它们最终可能会在不同的体系结构中运行,并且会自动进行即时编译。因此,.NET 程序集应该没有“位”。

但现实世界似乎并没有那么简单。我在 64 位机器上测试程序,经常遇到奇怪的兼容性问题,比如我的程序和另一个 .NET 库。所以我的问题是:

  • .NET 二进制文件能否以某种方式内置 CPU 架构?
  • 在什么条件下/应该发生这种情况?
  • 在 64 位机器上,什么事件链会导致 .NET 代码在 32 位环境中运行?

  • 顺便说一句:这个问题 ( Differences between 32 and 64-bit .NET (4) applications) 及其最佳答案理所当然地认为 .NET 应用程序有一定的重要性。但是我看不到在 Visual Studio 中设置架构的方法。

    最佳答案

    您引用的问题认为这是理所当然的,因为这是真的:.NET 应用程序是专门为不同的 CPU 架构构建的(并且在许多情况下也可以为“混合平台”构建,如果可用,它将运行 64 位和 32-否则位)。

    默认情况下,此选项未在 Visual Studio 中清晰显示,但可以将“解决方案平台”下拉列表添加到标准工具栏,默认情况下与“解决方案配置”下拉列表一起。

    此外,如果您从配置下拉列表中选择“配置管理器”,您将看到您当前的平台,并且可以为您的解决方案中的每个程序集编辑设置。

    具体回答你的三个要点:

  • 每个 .NET 二进制文件都有一个内置的 CPU 架构,即使它是“任何 CPU”
  • 每次构建都会发生这种情况;它是非可选的
  • 在以下情况下,64 位计算机将 .NET 程序集作为 32 位运行:
  • 它明确构建为 x86
  • 调用程序集是 x86(如果引用它的程序集是 32 位的,则“任何 CPU”dll 将作为 32 位运行)
  • 关于.net - .NET 程序集和 CPU 架构之间的关系是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20095204/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com