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

publish ディレクトリには、dotnet publish コマンドによって生成された、アプリの展開可能な資産が含まれています。The publish directory contains the app's deployable assets produced by the dotnet publish command. ディレクトリには次のものが含まれます。The directory contains:

  • アプリケーション ファイルApplication files
  • 構成ファイルConfiguration files
  • 静的な資産Static assets
  • パッケージPackages
  • ランタイム (自己完結型展開のみ)A runtime (self-contained deployment only)
アプリの種類App Type ディレクトリの構造Directory Structure
フレームワークに依存する実行可能ファイル (FDE)Framework-dependent Executable (FDE)
  • publish†publish†
    • Views† MVC アプリ、ビューがプリコンパイルされていない場合Views† MVC apps; if views aren't precompiled
    • Pages† MVC または Razor Pages アプリ、ページがプリコンパイルされていない場合Pages† MVC or Razor Pages apps, if pages aren't precompiled
    • wwwroot†wwwroot†
    • *.dll ファイル*.dll files
    • {ASSEMBLY NAME}.deps.json{ASSEMBLY NAME}.deps.json
    • {ASSEMBLY NAME}.dll{ASSEMBLY NAME}.dll
    • Windows では {ASSEMBLY NAME}{.EXTENSION} .exe 拡張子、macOS または Linux では拡張子なし{ASSEMBLY NAME}{.EXTENSION} .exe extension on Windows, no extension on macOS or Linux
    • {ASSEMBLY NAME}.pdb{ASSEMBLY NAME}.pdb
    • {ASSEMBLY NAME}.Views.dll{ASSEMBLY NAME}.Views.dll
    • {ASSEMBLY NAME}.Views.pdb{ASSEMBLY NAME}.Views.pdb
    • {ASSEMBLY NAME}.runtimeconfig.json{ASSEMBLY NAME}.runtimeconfig.json
    • web.config (IIS 展開)web.config (IIS deployments)
    • createdump (Linux createdump ユーティリティ)createdump (Linux createdump utility)
    • *.so (Linux 共有オブジェクト ライブラリ)*.so (Linux shared object library)
    • *.a (macOS アーカイブ)*.a (macOS archive)
    • *.dylib (macOS ダイナミック ライブラリ)*.dylib (macOS dynamic library)
自己完結型の展開 (SCD)Self-contained Deployment (SCD)
  • publish†publish†
    • Views† MVC アプリ、ビューがプリコンパイルされていない場合Views† MVC apps, if views aren't precompiled
    • Pages† MVC または Razor Pages アプリ、ページがプリコンパイルされていない場合Pages† MVC or Razor Pages apps, if pages aren't precompiled
    • wwwroot†wwwroot†
    • *.dll ファイル*.dll files
    • {ASSEMBLY NAME}.deps.json{ASSEMBLY NAME}.deps.json
    • {ASSEMBLY NAME}.dll{ASSEMBLY NAME}.dll
    • {ASSEMBLY NAME}.exe{ASSEMBLY NAME}.exe
    • {ASSEMBLY NAME}.pdb{ASSEMBLY NAME}.pdb
    • {ASSEMBLY NAME}.Views.dll{ASSEMBLY NAME}.Views.dll
    • {ASSEMBLY NAME}.Views.pdb{ASSEMBLY NAME}.Views.pdb
    • {ASSEMBLY NAME}.runtimeconfig.json{ASSEMBLY NAME}.runtimeconfig.json
    • web.config (IIS 展開)web.config (IIS deployments)

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

publish ディレクトリは、展開の "コンテンツ ルート パス" ("アプリケーション ベース パス" とも呼ばれます) を表します。The publish directory represents the content root path, also called the application base path, of the deployment. サーバー上で展開されたアプリの publish ディレクトリにどのような名前が指定されても、その場所がホストされたアプリへのサーバーの物理パスとして機能します。Whatever name is given to the publish directory of the deployed app on the server, its location serves as the server's physical path to the hosted app.

Wwwroot ディレクトリが存在する場合は、静的資産のみが含まれます。The wwwroot directory, if present, only contains static assets.

その他の技術情報Additional resources

publish ディレクトリには、dotnet publish コマンドによって生成された、アプリの展開可能な資産が含まれています。The publish directory contains the app's deployable assets produced by the dotnet publish command. ディレクトリには次のものが含まれます。The directory contains:

  • アプリケーション ファイルApplication files
  • 構成ファイルConfiguration files
  • 静的な資産Static assets
  • パッケージPackages
  • ランタイム (自己完結型展開のみ)A runtime (self-contained deployment only)
アプリの種類App Type ディレクトリの構造Directory Structure
フレームワークに依存する実行可能ファイル (FDE)Framework-dependent Executable (FDE)
  • publish†publish†
    • Views† MVC アプリ、ビューがプリコンパイルされていない場合Views† MVC apps; if views aren't precompiled
    • Pages† MVC または Razor Pages アプリ、ページがプリコンパイルされていない場合Pages† MVC or Razor Pages apps, if pages aren't precompiled
    • wwwroot†wwwroot†
    • *.dll ファイル*.dll files
    • {ASSEMBLY NAME}.deps.json{ASSEMBLY NAME}.deps.json
    • {ASSEMBLY NAME}.dll{ASSEMBLY NAME}.dll
    • Windows では {ASSEMBLY NAME}{.EXTENSION} .exe 拡張子、macOS または Linux では拡張子なし{ASSEMBLY NAME}{.EXTENSION} .exe extension on Windows, no extension on macOS or Linux
    • {ASSEMBLY NAME}.pdb{ASSEMBLY NAME}.pdb
    • {ASSEMBLY NAME}.Views.dll{ASSEMBLY NAME}.Views.dll
    • {ASSEMBLY NAME}.Views.pdb{ASSEMBLY NAME}.Views.pdb
    • {ASSEMBLY NAME}.runtimeconfig.json{ASSEMBLY NAME}.runtimeconfig.json
    • web.config (IIS 展開)web.config (IIS deployments)
    • createdump (Linux createdump ユーティリティ)createdump (Linux createdump utility)
    • *.so (Linux 共有オブジェクト ライブラリ)*.so (Linux shared object library)
    • *.a (macOS アーカイブ)*.a (macOS archive)
    • *.dylib (macOS ダイナミック ライブラリ)*.dylib (macOS dynamic library)
自己完結型の展開 (SCD)Self-contained Deployment (SCD)
  • publish†publish†
    • Views† MVC アプリ、ビューがプリコンパイルされていない場合Views† MVC apps, if views aren't precompiled
    • Pages† MVC または Razor Pages アプリ、ページがプリコンパイルされていない場合Pages† MVC or Razor Pages apps, if pages aren't precompiled
    • wwwroot†wwwroot†
    • *.dll ファイル*.dll files
    • {ASSEMBLY NAME}.deps.json{ASSEMBLY NAME}.deps.json
    • {ASSEMBLY NAME}.dll{ASSEMBLY NAME}.dll
    • {ASSEMBLY NAME}.exe{ASSEMBLY NAME}.exe
    • {ASSEMBLY NAME}.pdb{ASSEMBLY NAME}.pdb
    • {ASSEMBLY NAME}.Views.dll{ASSEMBLY NAME}.Views.dll
    • {ASSEMBLY NAME}.Views.pdb{ASSEMBLY NAME}.Views.pdb
    • {ASSEMBLY NAME}.runtimeconfig.json{ASSEMBLY NAME}.runtimeconfig.json
    • web.config (IIS 展開)web.config (IIS deployments)

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

publish ディレクトリは、展開の "コンテンツ ルート パス" ("アプリケーション ベース パス" とも呼ばれます) を表します。The publish directory represents the content root path, also called the application base path, of the deployment. サーバー上で展開されたアプリの publish ディレクトリにどのような名前が指定されても、その場所がホストされたアプリへのサーバーの物理パスとして機能します。Whatever name is given to the publish directory of the deployed app on the server, its location serves as the server's physical path to the hosted app.

Wwwroot ディレクトリが存在する場合は、静的資産のみが含まれます。The wwwroot directory, if present, only contains static assets.

ASP.NET Core モジュールの強化されたデバッグ ログでは、Logs フォルダーを作成すると便利です。Creating a Logs folder is useful for ASP.NET Core Module enhanced debug logging. <handlerSetting> 値に提供されるパスのフォルダーがこのモジュールによって自動的に作成されることはありません。デバッグ ログの書き込みをモジュールに許可するには、フォルダーがデプロイに事前に存在する必要があります。Folders in the path provided to the <handlerSetting> value aren't created by the module automatically and should pre-exist in the deployment to allow the module to write the debug log.

Logs ディレクトリは、次の 2 つの方法のいずれかを使って展開用に作成できます。A Logs directory can be created for the deployment using one of the following two approaches:

  • プロジェクト ファイルに次の <Target> 要素を追加します。Add the following <Target> element to the project file:

    <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 フォルダーを作成します。The <MakeDir> element creates an empty Logs folder in the published output. この要素は、PublishDir プロパティを使って、フォルダーを作成するためのターゲットの場所を決定します。The element uses the PublishDir property to determine the target location for creating the folder. Web 配置などの複数の展開方法は、展開の間に空のフォルダーをスキップします。Several deployment methods, such as Web Deploy, skip empty folders during deployment. <WriteLinesToFile> 要素は Logs フォルダーにファイルを生成します。これは、サーバーへのフォルダーの展開を保証します。The <WriteLinesToFile> element generates a file in the Logs folder, which guarantees deployment of the folder to the server. ワーカー プロセスにターゲット フォルダーへの書き込みアクセス許可がない場合、このアプローチを使用したフォルダーの作成は失敗します。Folder creation using this approach fails if the worker process doesn't have write access to the target folder.

  • 展開内のサーバー上に Logs ディレクトリを物理的に作成します。Physically create the Logs directory on the server in the deployment.

展開ディレクトリには、読み取り/実行アクセス許可が必要です。The deployment directory requires Read/Execute permissions. Logs ディレクトリには、読み取り/書き込みアクセス許可が必要です。The Logs directory requires Read/Write permissions. ファイルが書き込まれる追加のディレクトリには、読み取り/書き込みアクセス許可が必要です。Additional directories where files are written require Read/Write permissions.

その他の技術情報Additional resources