第 4 章 使用 .NET 6.0 发布应用程序


.NET 6.0 应用程序可以发布为使用共享的系统范围 .NET 版本,或包括 .NET。

发布 .NET 6.0 应用程序的方法存在以下方法:

  • 单文件应用程序 - 应用程序自包含,可以部署为单个可执行文件,且所有依赖文件包含在单个二进制文件中。
  • 框架独立部署(FDD)- 应用程序使用共享的系统范围 .NET 版本。
注意

为 RHEL 发布应用程序时,红帽建议使用 FDD,因为它确保应用程序使用最新的 .NET 版本(由红帽构建),该版本使用一组原生依赖项。这些原生库是 rh-dotnet60 软件集合的一部分。

  • 自包含的部署(SCD)- 应用程序包括 .NET。此方法使用 Microsoft 构建的运行时。由于原生库不可用,在 rh-dotnet60 软件集合外运行应用程序可能会导致问题。

先决条件

4.1. 发布 .NET 应用程序

以下流程概述了如何发布独立于框架的应用程序。

步骤

  1. 发布独立于框架的应用程序:

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

    my-app 替换为您要发布的应用程序的名称。

  2. 可选: 如果应用程序仅用于 RHEL,请修剪其他平台所需的依赖项:

    $ dotnet restore my-app -r rhel.7-x64
    $ dotnet publish my-app -f net6.0 -c Release -r rhel.7-x64 --self-contained false
    Copy to Clipboard Toggle word wrap
  3. 启用 Software Collection 并传递应用程序以便在 RHEL 系统上运行应用程序:

    $ scl enable rh-dotnet60 -- dotnet <app>.dll
    Copy to Clipboard Toggle word wrap
  4. 您可以将 scl enable rh-dotnet60PROFILE-mvapichdotnet <app>.dll 命令添加到应用程序发布的脚本中。

    在项目中添加以下脚本并更新变量:

    #!/bin/bash
    
    APP=<app>
    SCL=rh-dotnet60
    DIR="$(dirname "$(readlink -f "$0")")"
    
    scl enable $SCL -- "$DIR/$APP" "$@"
    Copy to Clipboard Toggle word wrap
  5. 要在发布时包含脚本,请将此 ItemGroup 添加到 csproj 文件中:

    <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

© 2025 Red Hat