From IT Skills
Jump to: navigation, search

three different runtimes you can install on Windows:

Runs ASP.NET Core apps. Includes the .NET runtime.

  • Desktop runtime

Runs .NET WPF and Windows Forms desktop apps for Windows. Includes the .NET runtime.

  • .NET runtime

simplest runtime and doesn't include any other runtime. It's highly recommended that you install both ASP.NET Core runtime and Desktop runtime

The shared framework name ends in “.App”, but it could be anything... The shared framework version represents the minimum version... dotnet --list-runtimes show the names, versions, and locations of shared frameworks

  • Microsoft.NETCore.App
    The base runtime
  • Microsoft.AspNetCore.App
    The default web runtime. It imports Microsoft.NETCore.App, and adds API to build an HTTP server using Kestrel, Mvc, SignalR, Razor, and parts of EF Core.
  • Microsoft.AspNetCore.All
    Integrations with third-party stuff. It imports Microsoft.AspNetCore.App. It adds support for EF Core + SQLite, extensions that use Redis... deprecated in 3.0

app execution[edit]

runtimeconfig.json... .NET Core SDK adds an implicit package reference to Microsoft.NETCore.App to all projects. ASP.NET Core overrides the default by setting MicrosoftNETPlatformLibrary to "Microsoft.AspNetCore.App". The NuGet package, however, does not provide the shared framework... If an app minimum version is 2.1.0, the highest 2.1.* version will be loaded...

host will probe several locations to find a suitable shared framework.

  • starts by looking in the dotnet root, which is the directory containing the dotnet executable. This can also be overridden by setting the DOTNET_ROOT environment variable
  • DOTNET_ROOT/shared/$name/$version
  • look in pre-defined global locations using multi-level lookup. This can be turned off by setting the environment variable DOTNET_MULTILEVEL_LOOKUP=0
  • The default global locations are:
    Windows C:\Program Files\dotnet (64-bit processes)
    macOS /usr/local/share/dotnet (source code)
    Unix /usr/share/dotnet (source code)