为了调试,我需要将包括 Symboles 在内的 NuGet 包推送到我们自托管的 Azure Devops Server。
因此,我用dotnet pack任务与标志--include-symbols,并--include-source在我的构建流水线。作为输出,我得到两个文件package.1.0.0.nupkg和package.1.0.0.symbols.nupkg.
当我尝试package.1.0.0.symbols.nupkg在我的发布管道中推送包时,我得到了反馈:
409(冲突 - 提要已包含“package.1.0.0”。(DevOps 活动 ID:766B8BC7-9AE6-4998-A246-47397236122F))。
我在堆栈上的VSTS 中找到了Publish *.snupkg 符号包到私有提要。反馈是Azure DevOps 服务器不支持NuGet 符号,他们建议使用符号服务器。
是否有可能的解决方法是简单地重命名package.1.0.0.symbols.nupkgtopackage.1.0.0.nupkg并将此包推送到提要?Visual Studio是否能够在此类包的源中打开调试器?
还有另一种方法可以提供NuGet 符号以在Azure DevOps 服务器上进行调试吗?
您的帖子中有多个问题,让我们尝试一一解决。
- 是否有一个可能的解决方法,只需将 package.1.0.0.symbols.nupkg 重命名为 package.1.0.0.nupkg 并将此包推送到源?
答案是不。该错误409 (Conflict - The feed already contains "package.1.0.0"意味着您的 Feed 中已经有一个包package.1.0.0.nupkg或package.1.0.0.symbols.nupkgwith 。version 1.0.0因此,您无法在该源中推送具有相同版本的另一个包。feed 中的包版本是唯一的。为了保护包不会因为包版本相同而相互踩踏。
因此,要解决该错误,您需要更新软件包版本,例如1.0.1(从源中删除旧版本的软件包无法解决此错误)。
- Visual Studio 是否能够在此类包的源代码中打开调试器?
简短的回答是肯定的。详细内容将在下一个问题中解释。
- 是否有另一种方法可以提供 NuGet 符号以在 Azure DevOps 服务器上进行调试?
答案是肯定的,我们需要配置 Visual Studio 来启用调试远程包。您可以参考以下官方文档和详细博客:
ASP.NET Core 使用 AzureDevOps 调试 Nuget 包 | VSTS 符号服务器
- 但是,当我使用 nuget 安装包时,只有 package.dll 是从 Azure DevOps Artifacts 下载的内容的一部分。这是为什么?
这是安装包的预期行为。因为大多数时候我们安装使用nuget包的时候并不需要debug包,所以安装包只会将我们需要的dll添加到项目中而不会配置Symbols包。如果我们想调试包,我们必须像上面的链接一样配置符号包。
- 反馈是Azure DevOps Server不支持NuGet Symbols,他们建议使用符号服务器。
您在问题中提到的反馈是针对 * .snupkg符号包而不是符号包。Azure DevOps Server 应该支持发布 NuGet Symbols 包,而不是调试包,我们必须手动配置 Visual Studio 才能使用 Azure DevOps Server。
顺便说一句,由于您的帖子中有很多问题而且比较笼统,所以我的回答不是很具体。如果您对任何具体问题有任何疑问,欢迎您开新帖子提出详细问题。
| 归档时间: |
|
| 查看次数: |
602 次 |
| 最近记录: |