使用多版本 dotnet 运行时(如 Django 的 virtualenv)托管 ASP.NET Core?

Che*_*ung 2 asp.net-core

我有一个运行 CentOS 7.1 和 Apache 的 VM 来为 ASP.NET Core 1.1 应用程序提供服务。我想让单个 Web 应用程序使用它自己的目标运行时。例如:

eShop Web-> dotnet core 1.0

博客网站 -> dotnet core 1.1

测试站点 -> 2.0.0 beta ...

我阅读了一些帖子并建议使用 docker,但我的 VM 只有 8GB 内存并限制了 CPU 功率,所以我看起来像 Django 虚拟环境一样针对每个应用程序的不同版本。

谢谢。

nat*_*ter 5

您不需要任何特殊工具来实现这一点。.NET Core 支持并行安装。

dotnet 使用 (appname).runtimeconfig.json 文件的内容选择要使用的运行时的方式。SDK 将在您构建应用程序时生成此文件。如果你为“netcoreapp1.0”编译,构建输出将包含这个文件,它应该是这样的:

{
  "runtimeOptions": {
    "framework": {
      "name": "Microsoft.NETCore.App",
      "version": "1.0.4"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

如果您已将 dotnet 安装到/usr/share/dotnet/,则当您执行“dotnet app.dll”时,它将从/usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.4/

有关此文件中的更多详细信息,请参阅https://github.com/dotnet/cli/blob/rel/1.0.1/Documentation/specs/runtime-configuration-file.md