This document describes how .NET Core apps are detected and built. It includes details on .NET Core-specific components and configuration of build and run images too.
.NET Core runtime images are built on official microsoft/dotnet images from the Microsoft Container Registry.
The .NET Core toolset is applied when an ASP.NET Core or Azure Functions project file is found
in the root or a subdirectory of the repo.
We currently support detecting both .csproj
("C# Project") and .fsproj
("F# Project") files.
PROJECT
environment variable with a relative path to a project file..csproj
or.fsproj
in the root directory.- Look for an ASP.NET, Azure functions or Azure Blazor wasm apps in the subdirectories.
The following process is applied for each build.
- Run custom command or script if specified by
PRE_BUILD_COMMAND
orPRE_BUILD_SCRIPT_PATH
. - Run
dotnet restore
to restore Nuget dependencies. - Run
dotnet publish
to build a binary for production. - Run custom command or script if specified by
POST_BUILD_COMMAND
orPOST_BUILD_SCRIPT_PATH
.
By default, your app is run based on the AssemblyName specified in the .csproj
file. If an AssemblyName is not specified, the name of the .csproj file without
extension is used. For example, if your app includes a file
dotnet-react.csproj
, it will be run with dotnet run dotnet-react.dll
.
The startup command can be set manually as described in
appservice.md
.
.NET Core follows a release support policy which includes Long-Term Support (LTS) and Current releases. Oryx will support LTS releases supported by the .NET Core project and the Current release. Releases no longer supported by the upstream project will eventually be removed from Oryx; even while they remain we may be constrained in the support we can provide once upstream support ends.
We will provide notification twelve months prior to removing a release line; subscribe to Azure Updates to stay updated!
We will release updated versions of supported release lines at least once every 3 months.