ASP.NET Core のディレクトリ構造

publish ディレクトリには、dotnet publish コマンドによって生成された、アプリの展開可能な資産が含まれています。 ディレクトリには次のものが含まれます。

  • アプリケーション ファイル
  • 構成ファイル
  • 静的な資産
  • パッケージ
  • ランタイム (自己完結型展開のみ)
アプリの種類 ディレクトリの構造
フレームワークに依存する実行可能ファイル (FDE)
  • publish†
    • Views† MVC アプリ。ビューがプリコンパイルされていない場合
    • Pages† MVC または Razor Pages アプリ。ページがプリコンパイルされていない場合
    • wwwroot†
    • *.dll ファイル
    • {ASSEMBLY NAME}.deps.json
    • {ASSEMBLY NAME}.dll
    • Windows では {ASSEMBLY NAME}{.EXTENSION}.exe 拡張子、macOS または Linux では拡張子なし
    • {ASSEMBLY NAME}.pdb
    • {ASSEMBLY NAME}.runtimeconfig.json
    • web.config (IIS 展開)
    • createdump (Linux createdump ユーティリティ)
    • *.so (Linux 共有オブジェクト ライブラリ)
    • *.a (macOS アーカイブ)
    • *.dylib (macOS ダイナミック ライブラリ)
自己完結型の展開 (SCD)
  • publish†
    • Views† MVC アプリ。ビューがプリコンパイルされていない場合
    • Pages† MVC または Razor Pages アプリ。ページがプリコンパイルされていない場合
    • wwwroot†
    • *.dll ファイル
    • {ASSEMBLY NAME}.deps.json
    • {ASSEMBLY NAME}.dll
    • Windows では {ASSEMBLY NAME}{.EXTENSION} .exe 拡張子、macOS または Linux では拡張子なし
    • {ASSEMBLY NAME}.pdb
    • {ASSEMBLY NAME}.runtimeconfig.json
    • web.config (IIS 展開)

†ディレクトリを示します

publish ディレクトリは、展開の "コンテンツ ルート パス" ("アプリケーション ベース パス" とも呼ばれます) を表します。 サーバー上で展開されたアプリの publish ディレクトリにどのような名前が指定されても、その場所がホストされたアプリへのサーバーの物理パスとして機能します。

Wwwroot ディレクトリが存在する場合は、静的資産のみが含まれます。

その他の技術情報

publish ディレクトリには、dotnet publish コマンドによって生成された、アプリの展開可能な資産が含まれています。 ディレクトリには次のものが含まれます。

  • アプリケーション ファイル
  • 構成ファイル
  • 静的な資産
  • パッケージ
  • ランタイム (自己完結型展開のみ)
アプリの種類 ディレクトリの構造
フレームワークに依存する実行可能ファイル (FDE)
  • publish†
    • Views† MVC アプリ。ビューがプリコンパイルされていない場合
    • Pages† MVC または Razor Pages アプリ。ページがプリコンパイルされていない場合
    • wwwroot†
    • *.dll ファイル
    • {ASSEMBLY NAME}.deps.json
    • {ASSEMBLY NAME}.dll
    • Windows では {ASSEMBLY NAME}{.EXTENSION}.exe 拡張子、macOS または Linux では拡張子なし
    • {ASSEMBLY NAME}.pdb
    • {ASSEMBLY NAME}.Views.dll
    • {ASSEMBLY NAME}.Views.pdb
    • {ASSEMBLY NAME}.runtimeconfig.json
    • web.config (IIS 展開)
    • createdump (Linux createdump ユーティリティ)
    • *.so (Linux 共有オブジェクト ライブラリ)
    • *.a (macOS アーカイブ)
    • *.dylib (macOS ダイナミック ライブラリ)
自己完結型の展開 (SCD)
  • publish†
    • Views† MVC アプリ。ビューがプリコンパイルされていない場合
    • Pages† MVC または Razor Pages アプリ。ページがプリコンパイルされていない場合
    • wwwroot†
    • *.dll ファイル
    • {ASSEMBLY NAME}.deps.json
    • {ASSEMBLY NAME}.dll
    • Windows では {ASSEMBLY NAME}{.EXTENSION} .exe 拡張子、macOS または Linux では拡張子なし
    • {ASSEMBLY NAME}.pdb
    • {ASSEMBLY NAME}.Views.dll
    • {ASSEMBLY NAME}.Views.pdb
    • {ASSEMBLY NAME}.runtimeconfig.json
    • web.config (IIS 展開)

†ディレクトリを示します

publish ディレクトリは、展開の "コンテンツ ルート パス" ("アプリケーション ベース パス" とも呼ばれます) を表します。 サーバー上で展開されたアプリの publish ディレクトリにどのような名前が指定されても、その場所がホストされたアプリへのサーバーの物理パスとして機能します。

Wwwroot ディレクトリが存在する場合は、静的資産のみが含まれます。

その他の技術情報

publish ディレクトリには、dotnet publish コマンドによって生成された、アプリの展開可能な資産が含まれています。 ディレクトリには次のものが含まれます。

  • アプリケーション ファイル
  • 構成ファイル
  • 静的な資産
  • パッケージ
  • ランタイム (自己完結型展開のみ)
アプリの種類 ディレクトリの構造
フレームワークに依存する実行可能ファイル (FDE)
  • publish†
    • Views† MVC アプリ。ビューがプリコンパイルされていない場合
    • Pages† MVC または Razor Pages アプリ。ページがプリコンパイルされていない場合
    • wwwroot†
    • *.dll ファイル
    • {ASSEMBLY NAME}.deps.json
    • {ASSEMBLY NAME}.dll
    • Windows では {ASSEMBLY NAME}{.EXTENSION} .exe 拡張子、macOS または Linux では拡張子なし
    • {ASSEMBLY NAME}.pdb
    • {ASSEMBLY NAME}.Views.dll
    • {ASSEMBLY NAME}.Views.pdb
    • {ASSEMBLY NAME}.runtimeconfig.json
    • web.config (IIS 展開)
    • createdump (Linux createdump ユーティリティ)
    • *.so (Linux 共有オブジェクト ライブラリ)
    • *.a (macOS アーカイブ)
    • *.dylib (macOS ダイナミック ライブラリ)
自己完結型の展開 (SCD)
  • publish†
    • Views† MVC アプリ。ビューがプリコンパイルされていない場合
    • Pages† MVC または Razor Pages アプリ。ページがプリコンパイルされていない場合
    • wwwroot†
    • *.dll ファイル
    • {ASSEMBLY NAME}.deps.json
    • {ASSEMBLY NAME}.dll
    • {ASSEMBLY NAME}.exe
    • {ASSEMBLY NAME}.pdb
    • {ASSEMBLY NAME}.Views.dll
    • {ASSEMBLY NAME}.Views.pdb
    • {ASSEMBLY NAME}.runtimeconfig.json
    • web.config (IIS 展開)

†ディレクトリを示します

publish ディレクトリは、展開の "コンテンツ ルート パス" ("アプリケーション ベース パス" とも呼ばれます) を表します。 サーバー上で展開されたアプリの publish ディレクトリにどのような名前が指定されても、その場所がホストされたアプリへのサーバーの物理パスとして機能します。

Wwwroot ディレクトリが存在する場合は、静的資産のみが含まれます。

ASP.NET Core モジュールの強化されたデバッグ ログでは、Logs フォルダーを作成すると便利です。 <handlerSetting> 値に提供されるパスのフォルダーがこのモジュールによって自動的に作成されることはありません。デバッグ ログの書き込みをモジュールに許可するには、フォルダーがデプロイに事前に存在する必要があります。

Logs ディレクトリは、次の 2 つの方法のいずれかを使って展開用に作成できます。

  • プロジェクト ファイルに次の <Target> 要素を追加します。

    <Target Name="CreateLogsFolder" AfterTargets="Publish">
       <MakeDir Directories="$(PublishDir)Logs" 
                Condition="!Exists('$(PublishDir)Logs')" />
       <WriteLinesToFile File="$(PublishDir)Logs\.log" 
                         Lines="Generated file" 
                         Overwrite="True" 
                         Condition="!Exists('$(PublishDir)Logs\.log')" />
    </Target>
    

    <MakeDir> 要素は、公開される出力に空の Logs フォルダーを作成します。 この要素は、PublishDir プロパティを使って、フォルダーを作成するためのターゲットの場所を決定します。 Web 配置などの複数の展開方法は、展開の間に空のフォルダーをスキップします。 <WriteLinesToFile> 要素は Logs フォルダーにファイルを生成します。これは、サーバーへのフォルダーの展開を保証します。 ワーカー プロセスにターゲット フォルダーへの書き込みアクセス許可がない場合、このアプローチを使用したフォルダーの作成は失敗します。

  • 展開内のサーバー上に Logs ディレクトリを物理的に作成します。

展開ディレクトリには、読み取り/実行アクセス許可が必要です。 Logs ディレクトリには、読み取り/書き込みアクセス許可が必要です。 ファイルが書き込まれる追加のディレクトリには、読み取り/書き込みアクセス許可が必要です。

その他の技術情報