共用方式為


ASP.NET Core 目錄結構

注意

這不是這篇文章的最新版本。 如需目前的版本,請參閱 本文的 .NET 9 版本。

警告

不再支援此版本的 ASP.NET Core。 如需詳細資訊,請參閱 .NET 和 .NET Core 支援原則。 如需目前版本,請參閱本文的 .NET 8 版本

重要

這些發行前產品的相關資訊在產品正式發行前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。

如需目前的版本,請參閱 本文的 .NET 9 版本。

publish 目錄包含 dotnet publish 命令所產生的應用程式可部署資產。 此目錄包含:

  • 應用程式檔案
  • 組態檔
  • 靜態資產
  • 套件
  • 執行階段 (僅限自封式部署)
應用程式類型 目錄結構
Framework 相依可執行檔 (FDE)
  • 發行†
    • Views† (MVC 應用程式;如果未先行編譯檢視)
    • Pages† (MVC 或 Razor 頁面應用程式;如果未先行編譯頁面)
    • wwwroot†
    • *.dll 檔案
    • {組件名稱}.deps.json
    • {組件名稱}.dll
    • {ASSEMBLY NAME} Windows 的 {.EXTENSION}.exe 延伸模組,macOS 或 Linux 則無延伸模組
    • {組件名稱}.pdb
    • {組件名稱}.runtimeconfig.json
    • web.config (IIS 部署)
    • createdump (Linux createdump 公用程式)
    • *.so (Linux 共用物件的程式庫)
    • *.a (macOS 封存)
    • *.dylib (macOS 動態程式庫)
自封式部署 (SCD)
  • 發行†
    • Views† (MVC 應用程式;如果未先行編譯檢視)
    • Pages† (MVC 或 Razor 頁面應用程式;如果未先行編譯頁面)
    • wwwroot†
    • *.dll 檔案
    • {組件名稱}.deps.json
    • {組件名稱}.dll
    • {ASSEMBLY NAME} Windows 的 {.EXTENSION}.exe 延伸模組,macOS 或 Linux 則無延伸模組
    • {組件名稱}.pdb
    • {組件名稱}.runtimeconfig.json
    • web.config (IIS 部署)

†表示目錄

publish 目錄代表部署的「內容根目錄路徑」(也稱為「應用程式基底路徑」)。 不論給予伺服器上所部署應用程式的 publish 目錄什麼名稱,其位置都會作為所裝載應用程式的伺服器實體路徑。

wwwroot 目錄 (如果存在) 只包含靜態資產。

其他資源

publish 目錄包含 dotnet publish 命令所產生的應用程式可部署資產。 此目錄包含:

  • 應用程式檔案
  • 組態檔
  • 靜態資產
  • 套件
  • 執行階段 (僅限自封式部署)
應用程式類型 目錄結構
Framework 相依可執行檔 (FDE)
  • 發行†
    • Views† (MVC 應用程式;如果未先行編譯檢視)
    • Pages† (MVC 或 Razor 頁面應用程式;如果未先行編譯頁面)
    • wwwroot†
    • *.dll 檔案
    • {組件名稱}.deps.json
    • {組件名稱}.dll
    • {ASSEMBLY NAME} Windows 的 {.EXTENSION}.exe 延伸模組,macOS 或 Linux 則無延伸模組
    • {組件名稱}.pdb
    • {組件名稱}.Views.dll
    • {組件名稱}.Views.pdb
    • {組件名稱}.runtimeconfig.json
    • web.config (IIS 部署)
    • createdump (Linux createdump 公用程式)
    • *.so (Linux 共用物件的程式庫)
    • *.a (macOS 封存)
    • *.dylib (macOS 動態程式庫)
自封式部署 (SCD)
  • 發行†
    • Views† (MVC 應用程式;如果未先行編譯檢視)
    • Pages† (MVC 或 Razor 頁面應用程式;如果未先行編譯頁面)
    • wwwroot†
    • *.dll 檔案
    • {組件名稱}.deps.json
    • {組件名稱}.dll
    • {ASSEMBLY NAME} Windows 的 {.EXTENSION}.exe 延伸模組,macOS 或 Linux 則無延伸模組
    • {組件名稱}.pdb
    • {組件名稱}.Views.dll
    • {組件名稱}.Views.pdb
    • {組件名稱}.runtimeconfig.json
    • web.config (IIS 部署)

†表示目錄

publish 目錄代表部署的「內容根目錄路徑」(也稱為「應用程式基底路徑」)。 不論給予伺服器上所部署應用程式的 publish 目錄什麼名稱,其位置都會作為所裝載應用程式的伺服器實體路徑。

wwwroot 目錄 (如果存在) 只包含靜態資產。

其他資源

publish 目錄包含 dotnet publish 命令所產生的應用程式可部署資產。 此目錄包含:

  • 應用程式檔案
  • 組態檔
  • 靜態資產
  • 套件
  • 執行階段 (僅限自封式部署)
應用程式類型 目錄結構
Framework 相依可執行檔 (FDE)
  • 發行†
    • Views† (MVC 應用程式;如果未先行編譯檢視)
    • Pages† (MVC 或 Razor 頁面應用程式;如果未先行編譯頁面)
    • wwwroot†
    • *.dll 檔案
    • {組件名稱}.deps.json
    • {組件名稱}.dll
    • {ASSEMBLY NAME} Windows 的 {.EXTENSION}.exe 延伸模組,macOS 或 Linux 則無延伸模組
    • {組件名稱}.pdb
    • {組件名稱}.Views.dll
    • {組件名稱}.Views.pdb
    • {組件名稱}.runtimeconfig.json
    • web.config (IIS 部署)
    • createdump (Linux createdump 公用程式)
    • *.so (Linux 共用物件的程式庫)
    • *.a (macOS 封存)
    • *.dylib (macOS 動態程式庫)
自封式部署 (SCD)
  • 發行†
    • Views† (MVC 應用程式;如果未先行編譯檢視)
    • Pages† (MVC 或 Razor 頁面應用程式;如果未先行編譯頁面)
    • wwwroot†
    • *.dll 檔案
    • {組件名稱}.deps.json
    • {組件名稱}.dll
    • {組件名稱}.exe
    • {組件名稱}.pdb
    • {組件名稱}.Views.dll
    • {組件名稱}.Views.pdb
    • {組件名稱}.runtimeconfig.json
    • web.config (IIS 部署)

†表示目錄

publish 目錄代表部署的「內容根目錄路徑」(也稱為「應用程式基底路徑」)。 不論給予伺服器上所部署應用程式的 publish 目錄什麼名稱,其位置都會作為所裝載應用程式的伺服器實體路徑。

wwwroot 目錄 (如果存在) 只包含靜態資產。

建立 Logs 資料夾對 ASP.NET Core 模組增強型偵錯記錄很有用。 模組不會在提供給 <handlerSetting> 值的路徑中自動建立資料夾,這些資料夾應該已存在於部署中,模組才能寫入偵錯記錄。

使用下列兩種方法其中之一,即可為部署建立 Logs 目錄:

  • 將下列 <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 Deploy) 在部署期間都會略過空的資料夾。 <WriteLinesToFile> 元素會在 [Logs] 資料夾中產生檔案,用以確保將資料夾部署至伺服器。 如果背景工作處理序沒有目標資料夾的寫入權限,則使用此方法建立資料夾時會失敗。

  • 在部署中的伺服器上實體建立 Logs 目錄。

部署目錄會要求「讀取/執行」權限。 Logs 目錄會要求「讀取/寫入」權限。 其他可供寫入檔案的目錄會要求「讀取/寫入」權限。

其他資源