此内容没有您所选择的语言版本。
Chapter 4. Publishing applications with .NET Core 3.1
.NET Core 3.1 applications can be published to use a shared system-wide version of .NET Core or to include .NET Core.
The following methods exist for publishing .NET Core 3.1 applications:
- Framework-dependent deployment (FDD) - The application uses a shared system-wide version of .NET.
When publishing an application for RHEL, Red Hat recommends using FDD, because it ensures that the application is using an up-to-date version of .NET Core, built by Red Hat, that uses a set of native dependencies. These native libraries are part of the rh-dotnet31 Software Collection.
-
Self-contained deployment (SCD) - The application includes .NET. This method uses a runtime built by Microsoft. Running applications outside the
rh-dotnet31Software Collection may cause issues due to the unavailability of native libraries.
Prerequisites
Existing .NET Core application.
For more information on how to create a .NET Core application, see
4.1. Publishing .NET Core applications 复制链接链接已复制到粘贴板!
The following procedure outlines how to publish a framework-dependent application.
Procedure
Publish the framework-dependent application:
dotnet publish my-app -f netcoreapp3.1 -c Release
$ dotnet publish my-app -f netcoreapp3.1 -c ReleaseCopy to Clipboard Copied! Toggle word wrap Toggle overflow Replace my-app with the name of the application you want to publish.
Optional: If the application is for RHEL only, trim out the dependencies needed for other platforms:
dotnet restore my-app -r rhel.7-x64 dotnet publish my-app -f netcoreapp3.1 -c Release -r rhel.7-x64 --self-contained false
$ dotnet restore my-app -r rhel.7-x64 $ dotnet publish my-app -f netcoreapp3.1 -c Release -r rhel.7-x64 --self-contained falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow Enable the Software Collection and pass the application name to run the application on a RHEL system:
scl enable rh-dotnet31 -- dotnet <app>.dll
$ scl enable rh-dotnet31 -- dotnet <app>.dllCopy to Clipboard Copied! Toggle word wrap Toggle overflow You can add the
scl enable rh-dotnet31 — dotnet <app>.dllcommand to a script that is published with the application.Add the following script to your project and update the
APPvariable:Copy to Clipboard Copied! Toggle word wrap Toggle overflow To include the script when publishing, add this ItemGroup to the
csprojfile:<ItemGroup> <None Update="<scriptname>" Condition="'$(RuntimeIdentifier)' == 'rhel.7-x64' and '$(SelfContained)' == 'false'" CopyToPublishDirectory="PreserveNewest" /> </ItemGroup><ItemGroup> <None Update="<scriptname>" Condition="'$(RuntimeIdentifier)' == 'rhel.7-x64' and '$(SelfContained)' == 'false'" CopyToPublishDirectory="PreserveNewest" /> </ItemGroup>Copy to Clipboard Copied! Toggle word wrap Toggle overflow