Note
此版本不是本文的最新版本。 有关当前版本,请参阅本文的 .NET 9 版本。
 
 
Important
此信息与预发布产品相关,相应产品在商业发布之前可能会进行重大修改。 Microsoft 对此处提供的信息不提供任何明示或暗示的保证。
有关当前版本,请参阅本文的 .NET 9 版本。
 
 
发布目录包含应用的可部署资产,由 dotnet publish 命令生成  。 该目录包含:
- Application files
 
- Configuration files
 
- Static assets
 
- Packages
 
- 运行时(仅限独立部署)
 
| App Type | 
Directory Structure | 
| 
              依赖于框架的可执行文件 (FDE) | 
- publish†
- Views† MVC 应用(如果未预编译视图)
 - Pages† MVC 或 Razor Pages 应用(如果未预编译页)
 - wwwroot†
 - *.dll files
 - {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 files
 - {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 目录(如果存在)仅包含静态资产。
Additional resources
 
发布目录包含应用的可部署资产,由 dotnet publish 命令生成  。 该目录包含:
- Application files
 
- Configuration files
 
- Static assets
 
- Packages
 
- 运行时(仅限独立部署)
 
| App Type | 
Directory Structure | 
| 
              依赖于框架的可执行文件 (FDE) | 
- publish†
- Views† MVC 应用(如果未预编译视图)
 - Pages† MVC 或 Razor Pages 应用(如果未预编译页)
 - wwwroot†
 - *.dll files
 - {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 files
 - {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 目录(如果存在)仅包含静态资产。
Additional resources
 
发布目录包含应用的可部署资产,由 dotnet publish 命令生成  。 该目录包含:
- Application files
 
- Configuration files
 
- Static assets
 
- Packages
 
- 运行时(仅限独立部署)
 
| App Type | 
Directory Structure | 
| 
              依赖于框架的可执行文件 (FDE) | 
- publish†
- Views† MVC 应用(如果未预编译视图)
 - Pages† MVC 或 Razor Pages 应用(如果未预编译页)
 - wwwroot†
 - *.dll files
 - {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 files
 - {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 目录(如果存在)仅包含静态资产。
创建 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 目录需要读/写权限。 将文件写入其他目录需要读/写权限。
Additional resources