【问题标题】:Azure DevOps NuGet Feed with Symbols带有符号的 Azure DevOps NuGet 源
【发布时间】:2021-02-17 22:14:19
【问题描述】:

为了调试,我需要将包括符号在内的 NuGet 包推送到我们的自托管 Azure Devops 服务器

因此,我在构建管道中使用带有标志--include-symbols--include-sourcedotnet pack 任务。作为输出,我得到两个文件 package.1.0.0.nupkgpackage.1.0.0.symbols.nupkg

当我尝试在我的发布管道中推送 package.1.0.0.symbols.nupkg 包时,我收到了反馈:

409(冲突 - 供稿已包含“package.1.0.0”。 (DevOps 活动 ID:766B8BC7-9AE6-4998-A246-47397236122F))。

我在堆栈上找到了Publish *.snupkg symbol package to private feed in VSTS。反馈是 Azure DevOps Server 不支持 NuGet Symbols,他们建议使用符号服务器。

是否可以简单地将package.1.0.0.symbols.nupkg 重命名为package.1.0.0.nupkg 并将此包推送到提要? Visual Studio 是否能够在此类包的源代码中打开调试器?

还有其他方法可以提供 NuGet 符号 以在 Azure DevOps 服务器 上进行调试吗?

【问题讨论】:

  • 我测试将package.1.0.0.symbols.nupkg 推送到我的提要并且它有效。它显示为package, Version 1.0.0。当我手动下载它时,所有内容都在里面(来源cs, csproj和符号pdb)。但是当我使用nuget install package 时,只有package.dll 是从Azure DevOps Artifacts 下载的内容的一部分。这是为什么呢?
  • 嗨,Martin,我看到你打开了一篇关于这个问题的一些细节的新帖子,其他人正在尝试解决这些问题。有时间我也会看看这些问题。那么您对当前问题有任何疑问吗?
  • 我也有同样的问题。

标签: azure-devops


【解决方案1】:

您的帖子中有多个问题,让我们尝试一一解决。

  1. 是否可以简单地重命名 package.1.0.0.symbols.nupkg 到 package.1.0.0.nupkg 并推送这个 打包到 Feed 中?

答案是否定的。错误409 (Conflict - The feed already contains "package.1.0.0" 表示您的提要中已经有一个包package.1.0.0.nupkgpackage.1.0.0.symbols.nupkgversion 1.0.0。因此,您无法在该提要中推送另一个具有相同版本的包。提要中的包版本是唯一的。为了保护包不因包的版本相同而互相踩踏。

因此,要解决该错误,您需要更新软件包版本,例如 1.0.1从提要中删除旧版本的软件包不会解决此错误)。

  1. Visual Studio 是否能够在源代码中打开调试器 这种包?

简短的回答是肯定的。细节将在下一个问题中解释。

  1. 是否有另一种方法可以提供 NuGet 符号以在 Azure 上进行调试 DevOps 服务器?

答案是肯定的,我们需要配置 Visual Studio 以启用调试远程包。您可以参考以下官方文档和详细博客:

Debug with symbols in Visual Studio

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

  1. 但是当我使用 nuget 安装包时,只有 package.dll 是一部分 从 Azure DevOps Artifacts 下载的内容。 这是为什么呢?

这是安装软件包的预期行为。因为大多数时候我们安装使用nuget包的时候,是不需要debug包的,所以安装包只会把我们需要的dll添加到项目中,不会配置Symbols包。如果我们想调试包,我们必须像上面的链接一样配置 Symbols 包。

  1. 反馈Azure DevOps Server不支持NuGet 符号,他们建议使用符号服务器。

您在问题中提到的反馈是针对 *.snupkg 符号包而不是符号包。 Azure DevOps Server 应该支持发布 NuGet Symbols 包,而不是调试包,我们必须手动配置 Visual Studio 才能使用 Azure DevOps Server。

顺便说一句,由于您的帖子中有很多问题而且它们更笼统,所以我的回答不是很具体。如果您对任何具体问题有任何疑问,欢迎您打开一个包含详细问题的新帖子。

【讨论】:

    猜你喜欢
    • 2020-03-16
    • 1970-01-01
    • 2021-06-04
    • 2020-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    相关资源
    最近更新 更多