演習 - 自己完結型デプロイ用に発行する

完了

自己完結型のデプロイには、アプリとその依存関係、および .NET ランタイムが含まれます。 .NET ランタイムはアプリに含まれているので、アプリを実行するためにターゲット コンピューターに .NET ランタイムをインストールする必要はありません。 これにより、自己完結型のデプロイはフレームワークに依存するデプロイよりも大きくなります。 自己完結型アプリでは、最新のパッチを受け取るために .NET ランタイム更新プログラムの展開も処理する必要があります。

IT 部門は、ディザスター リカバリーを目的として、.NET ランタイムがインストールされていないサーバーでアプリをテストしていることをチームに通知しました。 64 ビット Windows サーバーと 64 ビット Linux サーバーの両方でアプリをテストする予定です。 このテストをサポートするには、環境ごとに自己完結型のデプロイとしてアプリを発行する必要があります。

この演習では、ASP.NET Core アプリを Windows および Linux 用の自己完結型デプロイとして発行します。

自己完結型デプロイとして公開する

  1. ターミナル ウィンドウで、 MyWebApp ディレクトリに移動します。 前の演習の最後に、MyWebApp/publish-fd にいました。 MyWebApp ディレクトリに戻る必要があります。

    cd ..
    

    これで MyWebApp ディレクトリに移動します。

  2. 次のコマンドを実行して、64 ビット Windows の自己完結型展開としてアプリを発行します。

    dotnet publish -c Release -r win-x64 -o publish-scd-win64 --self-contained
    

    前のコマンドでは

    • -c Release では、アプリをリリース モードでビルドする必要があることを指定します。 これにより、パフォーマンスのためにアプリが最適化されます。
    • -r win-x64 では、64 ビット Windows 用にアプリを発行する必要があることを指定します。 win-x64 は 64 ビット Windows の ランタイム識別子 (RID) であるため、アプリは 64 ビット Windows の自己完結型展開として公開されます。
    • -o publish-scd-win64 は、発行されたアプリの出力ディレクトリを指定します。
    • --self-contained では、アプリを自己完結型のデプロイとして発行する必要があることを指定します。

    このコマンドは、64 ビット Windows の自己完結型展開としてアプリをビルドし、 MyWebApp/publish-scd-win64 ディレクトリに発行 します。

  3. エクスプローラー ウィンドウで MyWebApp/publish-scd-win64 ディレクトリの内容を確認します。

    このディレクトリ内のファイルの一覧は、 publish-fd ディレクトリ内のファイルの一覧よりも大幅に大きくなります。 これは、自己完結型の展開には、.NET ランタイムに加えて、フレームワークに依存する展開と同じファイルが含まれているためです。 MyWebApp.exe ファイルは、アプリの 64 ビット Windows 実行可能ファイルです。

  4. 次のコマンドを実行して、64 ビット Linux 用の自己完結型デプロイとしてアプリを発行します。

    dotnet publish -c Release -r linux-x64 -o publish-scd-linux64 --self-contained
    

    今回は、 -r linux-x64 オプションでは、アプリを 64 ビット Linux 用に発行する必要があることを指定します。

  5. エクスプローラー ウィンドウで MyWebApp/publish-scd-linux64 ディレクトリの内容を確認します。

    publish-scd-linux64 ディレクトリ内のファイルの一覧は publish-scd-win64 ディレクトリ内のファイルの一覧に似ていますが、実行可能ファイルの名前は、MyWebApp.exeではなく MyWebApp です。 これは、Linux ではファイル拡張子を使用してファイルの種類を決定しないためです。 Linux サーバーにアプリをデプロイした後、実行する前に、 コマンドを使用して chmod +x ファイルに実行アクセス許可を付与する必要があります。