asp.net core 1.0 可以交叉编译吗?

asp.net core 1.0 cross-compilation possible?

可以交叉编译吗? 在 windows 和目标 linux 中编译应用程序? 如果是,那么应该可以使用正确的模板从在 linux 中运行的 windows 创建一个 docker 图像,只需添加构建输出?

谢谢

是的,这是可能的。两种可能性:

  1. 便携式应用程序:您需要在该目标计算机上安装 .NET Core。那是刚刚在其他地方执行的相同字节码。
  2. 独立应用程序:在构建过程中,您在项目的 project.json 中将目标平台指定为 "runtimes"。 dotnet restore, dotnet build, dotnet restore -r ubuntu.14.04-x64.

你必须知道:两种解决方案都被编译为字节码。第二个选项会将 .NET Core 运行时与您的输出捆绑在一起,因此您不需要本地安装(这就是您想要的 docker)。

还有一个更进一步,称为 .NET Native (https://github.com/dotnet/corert),但尚未得到很好的支持(它是早期测试版)。这会提前将您的源代码编译为本机可执行文件。我不知道该用例当前是否针对交叉编译。但是目前,正常的字节码执行和JITing已经足够了。