简介
.NET 通过 dotnet publish命令,编译应用程序、读取 project 文件的依赖项,生成文件集并发布到目录。
官方文档中,应用发布的相关内容,在 部署模型
章节下面。请看 应用程序发布概述
打包发布(交叉编译)
dotnet publish -c Release
-c|--configuration
: 定义生成配置。 大多数项目的默认配置为Debug
-r|--runtime
: 发布针对给定运行时的应用程序。参数为运行时标识符(RID),如果使用此选项,则还要使用--self-contained
或--no-self-contained
-a|--arch
: 指定目标体系结构。是设置运行时标识符(RID)的简写语法。例如,在win-x64
计算机上,指定--arch x86
会将 RID 设置为win-x86
。 如果使用此选项,请不要使用-r|--runtime
选项。--os
: 指定目标操作系统 (OS)。是设置运行时标识符(RID)的简写语法。例如,在win-x64
计算机上,指定--os linux
会将 RID 设置为linux-x64
。 如果使用此选项,请不要使用-r|--runtime
选项
单文件部署
单文件部署 通过将所有依赖应用程序文件捆绑到一个二进制文件中,大大减少了项目部署和分发的文件数量。 单文件部署
可用于 依赖框架的部署模型
和 独立应用程序
。
独立应用程序中单个文件的大小很大,因为它包含运行时和框架库。可通过 发布剪裁 来减小与剪裁兼容的应用程序的总大小。
单文件发布示例文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<PublishSingleFile>true</PublishSingleFile>
<SelfContained>true</SelfContained>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>
</Project>
剪裁独立部署
剪裁自包含部署 模型是自包含单文件独立部署模型的专用版本,该模型优化以减小部署大小。因为自包含的应用程序,.NET 运行时和运行时库与应用程序和第三方程序集捆绑在一起,独立应用程序中单个文件的尺寸很大。
剪裁只能用于独立发布的应用程序。
将 <PublishTrimmed>true</PublishTrimmed>
添加到项目文件
<PropertyGroup>
<PublishTrimmed>true</PublishTrimmed>
</PropertyGroup>
然后使用 dotnet publish 命令或 Visual Studio 发布应用。
发布后的pdb文件
PDB
全称Program Database。程序数据库(.pdb
)文件(也称为符号文件
),将项目源代码中的标识符和语句映射到已编译应用中的相应标识符和说明. 这些映射文件将调试器链接到源代码,以进行调试。
这个文件会在我们调试的时候被使用到。如果不是开发阶段便于调试,正常情况下 不应绑定到的发布应用
中。
C#发布之后的pdb文件是啥 https://www.cnblogs.com/sunny3158/p/16733537.html