第 4 章 使用 .NET 6.0 发布应用程序
.NET 6.0 应用程序可以发布为使用共享的系统范围 .NET 版本,或包括 .NET。
发布 .NET 6.0 应用程序的方法存在以下方法:
- 单文件应用程序 - 应用程序自包含,可以部署为单个可执行文件,且所有依赖文件包含在单个二进制文件中。
- 框架独立部署(FDD)- 应用程序使用共享的系统范围 .NET 版本。
为 RHEL 发布应用程序时,红帽建议使用 FDD,因为它确保应用程序使用最新的 .NET 版本(由红帽构建),该版本使用一组原生依赖项。这些原生库是 rh-dotnet60 软件集合的一部分。
-
自包含的部署(SCD)- 应用程序包括 .NET。此方法使用 Microsoft 构建的运行时。由于原生库不可用,在
rh-dotnet60软件集合外运行应用程序可能会导致问题。
先决条件
现有 .NET 应用程序。
有关如何创建 .NET 应用程序的更多信息,请参阅使用 .NET 创建应用程序。
4.1. 发布 .NET 应用程序 复制链接链接已复制到粘贴板!
以下流程概述了如何发布独立于框架的应用程序。
步骤
发布独立于框架的应用程序:
dotnet publish my-app -f net6.0 -c Release
$ dotnet publish my-app -f net6.0 -c ReleaseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 my-app 替换为您要发布的应用程序的名称。
可选: 如果应用程序仅用于 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
$ dotnet restore my-app -r rhel.7-x64 $ dotnet publish my-app -f net6.0 -c Release -r rhel.7-x64 --self-contained falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启用 Software Collection 并传递应用程序以便在 RHEL 系统上运行应用程序:
scl enable rh-dotnet60 -- dotnet <app>.dll
$ scl enable rh-dotnet60 -- dotnet <app>.dllCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以将
scl enable rh-dotnet60PROFILE-mvapichdotnet <app>.dll命令添加到应用程序发布的脚本中。在项目中添加以下脚本并更新变量:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要在发布时包含脚本,请将此 ItemGroup 添加到
csproj文件中:<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