ASP.NET Core アプリケーションでAOT (Ahead On Time) によるネイティブビルドをする

ASP.NET CoreアプリケーションでAOT(Ahead On Time) を有効にしてネイティブビルドする手順を紹介します。

概要

こちらの記事では、コンソールアプリケーションでAOT(Ahead On Time) を有効にしてネイティブビルドする手順を紹介しました。
この記事では、ASP.NET Core アプリケーションでAOT(Ahead On Time) を有効にしてネイティブビルドする手順を紹介します。

手順

ASP.NET Core アプリケーションを作成します。
プロジェクト作成ダイアログの[フレームワーク]の設定で ".NET 7.0" を選択します。
ASP.NET Core アプリケーションでAOT (Ahead On Time) によるネイティブビルドをする:画像1
ASP.NET Core アプリケーションでAOT (Ahead On Time) によるネイティブビルドをする:画像2

プロジェクトファイルの設定

プロジェクトの作成後、ソリューションエクスプローラーのウィンドウでプロジェクトのノードをクリックして選択します。 プロジェクトのノードを右クリックします。 下図のポップアップメニューが表示されます。メニューの[プロジェクト ファイルの編集]の項目をクリックします。
ASP.NET Core アプリケーションでAOT (Ahead On Time) によるネイティブビルドをする:画像3

プロジェクトファイルがコードで表示されます。
ASP.NET Core アプリケーションでAOT (Ahead On Time) によるネイティブビルドをする:画像4

プロジェクトファイルを編集します。

プロジェクトファイル (編集前)
<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net7.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>

</Project>

ASP.NET Core アプリケーションでAOT (Ahead On Time) によるネイティブビルドをする:画像5

PublishAot タグを追記します。

プロジェクトファイル (編集後)
<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net7.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <PublishAot>true</PublishAot>
  </PropertyGroup>

</Project>

ASP.NET Core アプリケーションでAOT (Ahead On Time) によるネイティブビルドをする:画像6

構成マネージャーの設定

構成マネージャーでx64プラットフォームのビルド構成を追加します。 追加の手順はこちらの記事を参照してください。

プラットフォーム追加後、ウィンドウ上部の[ソリューション プラットフォーム]のドロップダウンリストボックスの項目が "x64"に設定されていることを確認し、ビルドを実行します。
ASP.NET Core アプリケーションでAOT (Ahead On Time) によるネイティブビルドをする:画像7

ビルド後、出力フォルダを開きます。下図のファイルが作成されています。通常のビルドよりファイル数がとても多いです。
ASP.NET Core アプリケーションでAOT (Ahead On Time) によるネイティブビルドをする:画像8

通常のビルドの場合の出力フォルダは下図です。
ASP.NET Core アプリケーションでAOT (Ahead On Time) によるネイティブビルドをする:画像9

プロジェクトの発行

プロジェクトを発行します。今回はフォルダに発行します。
ASP.NET Core アプリケーションでAOT (Ahead On Time) によるネイティブビルドをする:画像10

プロジェクト発行先のディレクトリを確認します。ビルド結果ではファイル数が非常に多い状態ですが。 発行時にはファイル数が大幅に減っています。少数のファイルにまとめられて出力されるようです。

ASP.NET Core アプリケーションでAOT (Ahead On Time) によるネイティブビルドをする:画像11

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2022-11-20
Copyright © 1995–2025 iPentec all rights reserverd.