前两篇文章介绍了 .NET Core 程序在 Linux 平台上的两种部署方式。对于服务器程序,使用 .NET Core 的两种部署方式基本上足以满足需求,但是在很多情况下, .NET Core 仍然不是最佳的选择。
如果你想使用 .NET Core SDK,或者使用 .NET Standard,同时又有以下需求之一:
- 在非 x86/amd64 架构上部署程序,比如部署到 ARM 或者 MIPS 架构
- 在 Linux 平台上做开发,但部署的目标包含 FreeBSD 等 .NET Core 并未官方支持的平台
- .NET Core 2.0 仍未支持你所需要的 .NET Framework API,但 mono 却有较好的支持
- .NET Core 2.0 对你所需要的发行版支持仍然非常差
那么可以考虑使用 .NET Core SDK 完成开发,但是使用 mono runtime 作为最终的应用分发方式。
除此之外,使用 .NET Core SDK 搭配 mono runtime 使用,还能在 Linux 上生成 Windows 的 .NET Framework 程序。
需要注意的是,这种方式虽说是可行且受支持的,但是在官方文档里并没有被提及,只在 GitHub issue 中提到过。可能使用 mono 的 reference assembly 算是一种 hack。 继续阅读