第4章 .NET Core 3.1 を使用したアプリケーションの公開
.NET Core 3.1 アプリケーションを公開して、共有されたシステム全体で使用される .NET Core を使用するか、.NET Core を追加できます。
.NET Core 3.1 アプリケーションを公開するには、以下のメソッドがあります。
- フレームワーク依存デプロイメント (FDD): アプリケーションは、共有されたシステム全体の .NET バージョンを使用します。
RHEL にアプリケーションを公開する場合、Red Hat では FDD を使用することを推奨しています。これは、アプリケーションが、Red Hat が構築した最新バージョンの .NET Core を使用していることを保証するためです。これは、特定のネイティブ依存関係のセットを使用します。これらのネイティブライブラリーは、rh-dotnet31 Software Collection に含まれます。
-
SCD (自己完結型デプロイメント): アプリケーションには .NET が含まれます。この方法では、Microsoft が構築したランタイムを使用します。ネイティブライブラリーが使用できなくなるため、
rh-dotnet31Software Collection 以外でアプリケーションを実行すると問題が発生する可能性があります。
前提条件
既存の .NET Core アプリケーション。
.NET Core アプリケーションの作成方法は、次を参照してください。
4.1. .NET Core アプリケーションの公開
以下の手順では、フレームワーク依存アプリケーションを公開する方法を概説します。
手順
フレームワーク依存アプリケーションを公開します。
$ dotnet publish my-app -f netcoreapp3.1 -c Releasemy-app を公開するアプリケーションの名前に置き換えます。
任意: アプリケーションが RHEL 専用の場合は、次のコマンドを使用してその他のプラットフォームに必要な依存関係を削除します。
$ dotnet restore my-app -r rhel.7-x64 $ dotnet publish my-app -f netcoreapp3.1 -c Release -r rhel.7-x64 --self-contained false
Software Collection を有効にし、アプリケーション名を渡して、RHEL システムでアプリケーションを実行します。
$ scl enable rh-dotnet31 -- dotnet <app>.dll
scl enable rh-dotnet31 — dotnet <app>.dllコマンドを、アプリケーションで公開されるスクリプトに追加できます。以下のスクリプトをプロジェクトに追加し、
APP変数を更新します。#!/bin/bash APP=<app> SCL=rh-dotnet31 DIR="$(dirname "$(readlink -f "$0")")" scl enable $SCL -- "$DIR/$APP" "$@"
パブリッシュ時にスクリプトを含めるには、この ItemGroup を
csprojファイルに追加します。<ItemGroup> <None Update="<scriptname>" Condition="'$(RuntimeIdentifier)' == 'rhel.7-x64' and '$(SelfContained)' == 'false'" CopyToPublishDirectory="PreserveNewest" /> </ItemGroup>