在.NET 程序跨平台发布到 ARM 架构的电脑上时,生成的文件格式取决于具体的发布方式:
-
对于自包含部署 (Self-Contained Deployment):
- 会生成一个可执行文件(在 Linux ARM 上是 ELF 格式的二进制文件,无扩展名;在 Windows ARM 上是.exe 文件)
- 同时会包含一系列平台特定的共享库(在 Linux ARM 上是
.so
文件,在 macOS ARM 上是.dylib
文件)
-
对于框架依赖部署 (Framework-Dependent Deployment):
- 主要生成 **.dll 文件 **(.NET 程序集)
- 运行时需要目标 ARM 系统上已安装对应的.NET 运行时
- 仍然可能包含少量平台特定的原生库(.so 或.dylib)
简单来说:在 ARM Linux 系统上,.NET 发布的原生运行时组件和依赖会以.so
格式存在;
而.NET 自己的程序集始终是.dll
格式(这是跨平台的中间代码格式)。实际执行时,会通过平台特定的加载器来运行这些代码。