此内容没有您所选择的语言版本。

Chapter 4. Publishing applications with .NET 5.0


.NET 5.0 applications can be published to use a shared system-wide version of .NET or to include .NET.

The following methods exist for publishing .NET 5.0 applications:

  • Single-file application - The application is self-contained and can be deployed as a single executable with all dependent files contained in a single binary.
  • Framework-dependent deployment (FDD) - The application uses a shared system-wide version of .NET.
Note

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, built by Red Hat, that uses a set of native dependencies. These native libraries are part of the rh-dotnet50 Software Collection.

  • Self-contained deployment (SCD) - The application includes .NET. This method uses a runtime built by Microsoft. Running applications outside the rh-dotnet50 Software Collection may cause issues due to the unavailability of native libraries.

Prerequisites

4.1. Publishing .NET applications

The following procedure outlines how to publish a framework-dependent application.

Procedure

  1. Publish the framework-dependent application:

    $ dotnet publish my-app -f net5.0 -c Release
    Copy to Clipboard Toggle word wrap

    Replace my-app with the name of the application you want to publish.

  2. 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 net5.0 -c Release -r rhel.7-x64 --self-contained false
    Copy to Clipboard Toggle word wrap
  3. Enable the Software Collection and pass the application to run the application on a RHEL system:

    $ scl enable rh-dotnet50 -- dotnet <app>.dll
    Copy to Clipboard Toggle word wrap
  4. You can add the scl enable rh-dotnet50 — dotnet <app>.dll command to a script that is published with the application.

    Add the following script to your project and update the variable:

    #!/bin/bash
    
    APP=<app>
    SCL=rh-dotnet50
    DIR="$(dirname "$(readlink -f "$0")")"
    
    scl enable $SCL -- "$DIR/$APP" "$@"
    Copy to Clipboard Toggle word wrap
  5. To include the script when publishing, add this ItemGroup to the csproj file:

    <ItemGroup>
        <None Update="<scriptname>" Condition="'$(RuntimeIdentifier)' == 'rhel.7-x64' and '$(SelfContained)' == 'false'" CopyToPublishDirectory="PreserveNewest" />
    </ItemGroup>
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat