在构建时自动生成带有符号的 nuget 包

automatically generate nuget package with symbols on build

我有一个 C# 项目 (.net 6.0),我想在每次(重新)构建它时自动创建一个 nuget。

Here 它说:

To automatically run dotnet pack when you run dotnet build, add the following line to your project file within <PropertyGroup>:

<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

我试过了并且有效,但是没有添加任何符号(.pdb 个文件)。我该怎么做?


我尝试了以下方法:

但是现在当我运行dotnet build时,我运行陷入无限循环:(不幸的是它是德语,但你可以看到它只是重复。)

Wiederherzustellende Projekte werden ermittelt...
Alle Projekte sind für die Wiederherstellung auf dem neuesten Stand.
MyProject-> C:\Users\...\MyProject\bin\Debug\net6.0-windows\MyProject.dll
Microsoft (R)-Build-Engine, Version 17.0.0+c9eb9dd64 für .NET
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

  Wiederherzustellende Projekte werden ermittelt...
  Alle Projekte sind für die Wiederherstellung auf dem neuesten Stand.
  MyProject-> C:\Users\...\MyProject\bin\Debug\net6.0-windows\MyProject.dll
  Microsoft (R)-Build-Engine, Version 17.0.0+c9eb9dd64 für .NET
  Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

    Wiederherzustellende Projekte werden ermittelt...
    Alle Projekte sind für die Wiederherstellung auf dem neuesten Stand.
    MyProject-> C:\Users\...\MyProject\bin\Debug\net6.0-windows\MyProject.dll
    Microsoft (R)-Build-Engine, Version 17.0.0+c9eb9dd64 für .NET
    Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

      Wiederherzustellende Projekte werden ermittelt...

Here 它说:

The dotnet pack command builds the project and creates NuGet packages.

因此,如果我在构建后将 dotnet pack 作为命令,我将进入无限构建堆栈。 在同一页上列出了 nuget pack 的选项。其中之一是 --no-build.

将目标更改为

<Target Name="BuildNuget" AfterTargets="AfterBuild">
    <Exec Command="dotnet pack --no-build --include-symbols"/>
</Target>

问题已解决。