第4章 .NET 5.0 を使用したアプリケーションの公開
.NET 5.0 アプリケーションを公開して、共有されたシステム全体で使用される .NET を使用するか、.NET を追加できます。
.NET 5.0 アプリケーションを公開するには、以下のメソッドがあります。
- 単一ファイルアプリケーション: アプリケーションは自己完結型であり、単一のバイナリーに含まれる依存ファイルすべてを含む単一の実行可能ファイルとしてデプロイできます。
- フレームワーク依存デプロイメント (FDD): アプリケーションは、共有されたシステム全体の .NET バージョンを使用します。
RHEL にアプリケーションを公開する場合、Red Hat では FDD を使用することを推奨しています。これは、アプリケーションが、Red Hat が構築した最新バージョンの .NET を使用していることを保証するためです。これは、特定のネイティブ依存関係のセットを使用します。これらのネイティブライブラリーは、rh-dotnet50 Software Collection に含まれます。
-
SCD (自己完結型デプロイメント): アプリケーションには .NET が含まれます。この方法では、Microsoft が構築したランタイムを使用します。ネイティブライブラリーが使用できなくなるため、
rh-dotnet50Software Collection 以外でアプリケーションを実行すると問題が発生する可能性があります。
前提条件
既存の .NET アプリケーション。
.NET アプリケーションの作成方法の詳細は、「.NET を使用したアプリケーションの作成」を参照してください。
4.1. .NET アプリケーションの公開 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、フレームワーク依存アプリケーションを公開する方法を概説します。
手順
フレームワーク依存アプリケーションを公開します。
dotnet publish my-app -f net5.0 -c Release
$ dotnet publish my-app -f net5.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 net5.0 -c Release -r rhel.7-x64 --self-contained false
$ dotnet restore my-app -r rhel.7-x64 $ dotnet publish my-app -f net5.0 -c Release -r rhel.7-x64 --self-contained falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow Software Collection を有効にし、アプリケーションを渡して、RHEL システムでアプリケーションを実行します。
scl enable rh-dotnet50 -- dotnet <app>.dll
$ scl enable rh-dotnet50 -- dotnet <app>.dllCopy to Clipboard Copied! Toggle word wrap Toggle overflow scl enable rh-dotnet50 — dotnet <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