可以将 pdb 文件添加到 nuget 包中吗?

Can pdb files be added to a nuget package?

我们正在将包构建到本地 nuget 库,使用 azure 管道(YAML 构建文件)构建包并将它们添加到我们的库

可执行文件是从 csproj 中的 GeneratePackageOnBuild 指令打包的

<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<DebugType>full</DebugType>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>5.0.4</Version>

是否也可以将 pdb 文件添加到包中,以便它们与我们使用该包的服务一起分发?

目的有两点:

  1. 获取堆栈跟踪中的行号
  2. 能够调试到库代码

您想要的是一个“符号包”,它将创建另一个带有 .snupkg 扩展名的文件,您也可以将该文件上传到您的注册表。

只需将其添加到您的 .csproj 文件中,即可在打包项目时自动创建一个。

<PropertyGroup>
    <IncludeSymbols>true</IncludeSymbols>
    <SymbolPackageFormat>snupkg</SymbolPackageFormat>
</PropertyGroup>

https://docs.microsoft.com/en-us/nuget/create-packages/symbol-packages-snupkg

您可能还对 SourceLink 感兴趣,以便在调试时获得最佳体验。

https://docs.microsoft.com/en-us/dotnet/standard/library-guidance/sourcelink