标签归档:Linux

.NET Core 程序的打包与分发 (Linux 篇 Part. III)

前两篇文章介绍了 .NET Core 程序在 Linux 平台上的两种部署方式。对于服务器程序,使用 .NET Core 的两种部署方式基本上足以满足需求,但是在很多情况下, .NET Core 仍然不是最佳的选择。

如果你想使用 .NET Core SDK,或者使用 .NET Standard,同时又有以下需求之一:

  1. 在非 x86/amd64 架构上部署程序,比如部署到 ARM 或者 MIPS 架构
  2. 在 Linux 平台上做开发,但部署的目标包含 FreeBSD 等 .NET Core 并未官方支持的平台
  3. .NET Core 2.0 仍未支持你所需要的 .NET Framework API,但 mono 却有较好的支持
  4. .NET Core 2.0 对你所需要的发行版支持仍然非常差

那么可以考虑使用 .NET Core SDK 完成开发,但是使用 mono runtime 作为最终的应用分发方式。

除此之外,使用 .NET Core SDK 搭配 mono runtime 使用,还能在 Linux 上生成 Windows 的 .NET Framework 程序。

需要注意的是,这种方式虽说是可行且受支持的,但是在官方文档里并没有被提及,只在 GitHub issue 中提到过。可能使用 mono 的 reference assembly 算是一种 hack。 继续阅读