【发布时间】:2021-12-28 23:17:22
【问题描述】:
我有一台配备 M1 芯片的 MacBook Pro。我已经安装了 Parallels Desktop 17,因为我需要在 Windows 和 .NET 平台下开发。我在 ARM 上虚拟化了 Windows 11 并安装了 Visual Studio 2019(以及 2022)。尝试同时安装 Visual Studio 时,会出现一条警告消息,指出 M1 芯片不支持它,并且可能不稳定且速度慢。无论如何,我已经安装了它们,我看到性能很好(不慢),而且它看起来很稳定,并且通过从下拉列表中选择 x86 架构作为目标,我已经能够毫无问题地构建 .NET 解决方案。所以我想知道生成的二进制文件是否真的是 x86。那么它们是作为 x86 还是 ARM 生成的?如果它们是作为 x86 生成的,那怎么可能呢?是否有任何 x86 仿真层可以这样做?
【问题讨论】:
-
.NET 编译为独立于平台的 IL。当您运行应用程序时,它是即时 (JIT) 编译到目标体系结构的。所以“二进制文件真的是 x86 吗?”:不,它们是 IL。
-
@DanielMann 据我所知,根据您的评论,中间语言 IL(与平台无关)一旦应用程序正在运行。此机器代码特定于运行 JIT 编译器的计算机环境,因此当我在 x86 英特尔平台(假设是英特尔 PC,而不是 Mac)上执行此应用程序时,代码将毫无问题地执行。我说的对吗?
标签: .net visual-studio-2019 apple-m1 parallels visual-studio-2022