ASP.NET Core 目錄結構
注意
這不是這篇文章的最新版本。 如需目前的版本,請參閱 本文的 .NET 9 版本。
警告
不再支援此版本的 ASP.NET Core。 如需詳細資訊,請參閱 .NET 和 .NET Core 支援原則。 如需目前版本,請參閱本文的 .NET 8 版本。
publish 目錄包含 dotnet publish 命令所產生的應用程式可部署資產。 此目錄包含:
- 應用程式檔案
- 組態檔
- 靜態資產
- 套件
- 執行階段 (僅限自封式部署)
應用程式類型 | 目錄結構 |
---|---|
Framework 相依可執行檔 (FDE) |
|
自封式部署 (SCD) |
|
†表示目錄
publish 目錄代表部署的「內容根目錄路徑」(也稱為「應用程式基底路徑」)。 不論給予伺服器上所部署應用程式的 publish 目錄什麼名稱,其位置都會作為所裝載應用程式的伺服器實體路徑。
wwwroot 目錄 (如果存在) 只包含靜態資產。
其他資源
publish 目錄包含 dotnet publish 命令所產生的應用程式可部署資產。 此目錄包含:
- 應用程式檔案
- 組態檔
- 靜態資產
- 套件
- 執行階段 (僅限自封式部署)
應用程式類型 | 目錄結構 |
---|---|
Framework 相依可執行檔 (FDE) |
|
自封式部署 (SCD) |
|
†表示目錄
publish 目錄代表部署的「內容根目錄路徑」(也稱為「應用程式基底路徑」)。 不論給予伺服器上所部署應用程式的 publish 目錄什麼名稱,其位置都會作為所裝載應用程式的伺服器實體路徑。
wwwroot 目錄 (如果存在) 只包含靜態資產。
其他資源
publish 目錄包含 dotnet publish 命令所產生的應用程式可部署資產。 此目錄包含:
- 應用程式檔案
- 組態檔
- 靜態資產
- 套件
- 執行階段 (僅限自封式部署)
應用程式類型 | 目錄結構 |
---|---|
Framework 相依可執行檔 (FDE) |
|
自封式部署 (SCD) |
|
†表示目錄
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 目錄會要求「讀取/寫入」權限。 其他可供寫入檔案的目錄會要求「讀取/寫入」權限。