- ASP.NET Core 目录结构ASP.NET Core directory structure
- 其他资源Additional resources
- | 应用类型App Type | 目录结构Directory Structure || ———— | —————————- || 依赖于框架的可执行文件 (FDE)Framework-dependent Executable (FDE) | publish†publish†Views† MVC 应用(如果未预编译视图)Views† MVC apps; if views aren't precompiledPages† MVC 或 Razor Pages应用(如果未预编译页)Pages† MVC or Razor Pages apps, if pages aren't precompiledwwwroot†wwwroot†.dll 文件.dll files{ASSEMBLY NAME}.deps.json{ASSEMBLY NAME}.deps.json{ASSEMBLY NAME}.dll{ASSEMBLY NAME}.dll{ASSEMBLY NAME}{.EXTENSION} 在 Windows 上扩展名为 .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.jsonweb.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 precompiledPages† MVC 或 Razor Pages应用(如果未预编译页)Pages† MVC or Razor Pages apps, if pages aren't precompiledwwwroot†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.jsonweb.config(IIS 部署)web.config (IIS deployments) |
- 其他资源Additional resources
ASP.NET Core 目录结构ASP.NET Core directory structure
本文内容
发布目录包含应用的可部署资产,由 dotnet publish 命令生成 。该目录包含:
- 应用程序文件
- 配置文件
- 静态资产
- package
- 运行时(仅限独立部署)
应用类型 | 目录结构 |
---|---|
依赖于框架的可执行文件 (FDE) | - publish† - Views† MVC 应用(如果未预编译视图) - Pages† MVC 或 Razor Pages应用(如果未预编译页) - wwwroot† - .dll 文件 - {ASSEMBLY NAME}.deps.json - {ASSEMBLY NAME}.dll - {ASSEMBLY NAME}{.EXTENSION} 在 Windows 上扩展名为 .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 目录(如果存在)仅包含静态资产。
其他资源Additional resources
发布目录包含应用的可部署资产,由 dotnet publish 命令生成 。该目录包含:
- 应用程序文件
- 配置文件
- 静态资产
- package
- 运行时(仅限独立部署)
| 应用类型App Type | 目录结构Directory Structure || ———— | —————————- || 依赖于框架的可执行文件 (FDE)Framework-dependent Executable (FDE) | publish†publish†Views† MVC 应用(如果未预编译视图)Views† MVC apps; if views aren't precompiledPages† MVC 或 Razor Pages应用(如果未预编译页)Pages† MVC or Razor Pages apps, if pages aren't precompiledwwwroot†wwwroot†.dll 文件.dll files{ASSEMBLY NAME}.deps.json{ASSEMBLY NAME}.deps.json{ASSEMBLY NAME}.dll{ASSEMBLY NAME}.dll{ASSEMBLY NAME}{.EXTENSION} 在 Windows 上扩展名为 .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.jsonweb.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 precompiledPages† MVC 或 Razor Pages应用(如果未预编译页)Pages† MVC or Razor Pages apps, if pages aren't precompiledwwwroot†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.jsonweb.config(IIS 部署)web.config (IIS deployments) |
†指示目录
publish 目录代表部署的内容根路径 ,也称为应用程序基路径 。无论对服务器上已部署应用的 publish 目录如何命名,其位置都可作为托管应用的服务器物理路径。
wwwroot 目录(如果存在)仅包含静态资产。
创建 Logs 文件夹对于 ASP.NET 核心模块增强的调试日志记录来说非常有用 。提供给 <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 部署)均在部署期间跳过空文件夹。<WriteLinesToFile>
元素在 Logs 文件夹中生成一个文件,该文件可确保将文件夹部署到服务器。如果工作进程不具有对目标文件夹的写入权限,则使用此方法的文件夹创建操作将失败。
- 在部署中的服务器上物理创建 Logs 目录。
部署目录需要读取/执行权限。 Logs 目录需要读/写权限。将文件写入其他目录需要读/写权限。