1.4. アプリケーションの公開
.NET Core 3.1 アプリケーションを公開して、共有されたシステム全体で使用される .NET Core を使用するか、.NET Core を追加できます。この 2 種類のデプロイメントは、それぞれフレームワークに依存するデプロイメント (FDD) および自己完結型デプロイメント (SCD) と呼ばれます。
RHEL では、FDD による公開が推奨されます。この方法により、アプリケーションが Red Hat により構築された最新バージョンの .NET Core を使用し、特定セットのネイティブ依存関係が含まれるようになります。これらのネイティブライブラリーは、rh-dotnet31
Software Collection に含まれます。一方、SCD は Microsoft が作成したランタイムを使用します。ネイティブライブラリーが使用できなくなるため、rh-dotnet31
Software Collection 以外でアプリケーションを実行すると問題が発生する可能性があります。
フレームワーク依存アプリケーションを公開するには、次のコマンドを使用します。
dotnet publish -f netcoreapp3.1 -c Release
$ dotnet publish -f netcoreapp3.1 -c Release
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 任意: アプリケーションが RHEL 専用の場合は、次のコマンドを使用してその他のプラットフォームに必要な依存関係を削除します。
dotnet restore -r rhel.7-x64 dotnet publish -f netcoreapp3.1 -c Release -r rhel.7-x64 --self-contained false
$ dotnet restore -r rhel.7-x64 $ dotnet publish -f netcoreapp3.1 -c Release -r rhel.7-x64 --self-contained false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Software Collection を有効にし、アプリケーション名を渡して、RHEL システムでアプリケーションを実行します。
scl enable rh-dotnet31 -- dotnet <app>.dll
$ scl enable rh-dotnet31 -- dotnet <app>.dll
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、アプリケーションと共に公開されるスクリプトに追加できます。以下のスクリプトをプロジェクトに追加し、
APP
変数を更新します。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