如何使用 Azure DevOps 上的 NuGet 将符号获取到我们的开发机器?

How to get symbols to our dev machines with NuGet on Azure DevOps?

我试图解决的最终场景是调试我们开发并发布到 Azure DevOps 中的提要的 NuGet 包,当从不同的包引用时。例如。包 A 通过管道发布到 Azure DevOps NuGet 源。我正在使用包 B 中的它,并希望能够使用 Visual Studio.

调试 A 中的代码

问题是 dotnet pack --include-symbols 没有将 A 的符号包含到 .nupkg 中。相反,它将它们放入 .symbols.nupkg,dotnet push 不会将它们推送到我们的 DevOps 提要。除非我明确排除 .symbols.nupkg:

否则会发生冲突

Response status code does not indicate success: 409 (Conflict - The feed already contains 'A 0.0.0-REDACTED'. (DevOps Activity ID: A7965FB9-B458-43F9-8973-FD0B6E7F1138)).

问题是双重的:

  1. 对于 Azure DevOps 中 CI 构建的 NuGet 包,是否有一种受支持且有据可查的方法来获取自动加载到 Visual Studio 中的调试符号(最好是源代码)?
  2. 如果我尝试做的是正确的方法,我该如何处理。symbols.nupkg?

@zivkan 链接的文档是开始的地方。 Azure DevOps 符号服务器当前不支持 .snupkgs。

Is there a supported and well documented way to get debug symbols (and, preferably sources) automatically loaded in Visual Studio for a NuGet package build by CI in Azure DevOps?

我之前看过一篇很棒的博客,它给出了如何使用 AzureDevOps/VSTS 符号服务器调试 ASP.NET 核心 Nuget 包的详细步骤,你可以看看它是否对你有帮助:

门票:ASP.NET Core Debugging Nuget Packages with AzureDevOps | VSTS Symbol Server

If what I am trying to do is the correct way, how do I deal with .symbols.nupkg?

恐怕不行,我们需要使用任务 Index Sources & Publish Symbols 来索引您的源代码,并可选择将符号发布到包管理符号服务器或文件共享。

希望对您有所帮助。