使用Azure Devops Symbole Server调试NuGet程序包导致找不到类

问题描述 投票:0回答:1

我最近一直在与Azure Devops一起玩,以将NuGet包作为工件托管,然后将其用于我的另一个项目中。到目前为止,我设法获得了包并按预期使用了它,但是我也希望能够对其进行调试,因此我不得不添加符号(据我所知?)。因此,我在管道中为成功的符号添加了一个发布步骤,并成功发布了.pdb文件。我通过在设置Debug> Symbols中连接到DevOps来引用Visual Studio中的符号供稿。在调试代码时,它会正确地将.pdb文件下载到临时位置,并且在代码运行期间,所有文件都将保留在该位置。在调试器> Windows>模块下,它实际上告诉我在调试时正确加载了符号,但是当我尝试进入代码时,我得到了错误:“找不到.cs”。

IssueAsShown

我已经尝试过多种操作,例如清除符号缓存,在调试中更改“仅拥有自己的代码”和“允许源服务器支持”等设置。但是无济于事。

我错过了一步,还是我做错了什么?

azure-devops nuget-package visual-studio-debugging debug-symbols symbol-server
1个回答
0
投票

使用Azure Devops Symbole Server调试NuGet程序包导致未找到类

那是因为您没有启用支持Visual Studio的Source Link,所以知道在调试时应该在哪里下载源代码。

要调试源代码,我们需要源代码,pdb(或/ Z7)包含调试信息,就像可执行代码和源代码之间的映射一样。使用pdb,VS调试器知道每个指令在源文件中的位置,但是它仍然需要源文件才能向您显示代码。

因此,我们必须启用源链接。编辑.csproj文件,并在第一个PropertyGroup元素中包含以下代码:

<PublishRepositoryUrl>true</PublishRepositoryUrl>
 <EmbedUntrackedSources>true</EmbedUntrackedSources>

您可以查看similar thread了解更多详细信息。

另一方面,您也可以将源代码作为轻量级解决方案添加到nuget包中:

检查我的previous thread了解详细信息。

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.