无法从visual studio访问VSTS Symbol服务器中发布的符号

时间:2018-04-12 23:14:07

标签: visual-studio visual-studio-2017 azure-devops azure-pipelines

作为构建执行的一部分,我能够成功地将符号发布到VSTS符号服务器。

Symbol publish log

按照此link设置视觉工作室,一切都很好,直到这一点。我的符号设置如下所示:

enter image description here

尝试调试时,visual studio命中VSTS符号服务器,但返回错误消息“无法找到或打开PDB文件”

enter image description here

以下是visual studio在尝试从VSTS符号服务器获取后提供的符号加载信息 enter image description here

3 个答案:

答案 0 :(得分:1)

从2017年11月15日开始,Visual Studio Online(现在也称为Azure DevOps)的Index Sources and Publish Symbols构建步骤将处理dotnet build

创建的新可移植PDB。

您应勾选Publish symbols并选择您的订阅。免费套餐有5个用户。您需要为每个用户分配对符号服务器的访问权限。

勾选Index Sources复选框没有任何意义,因为源文件位于构建服务器上,通常位于C:\agent\_work\34\s\...这样的晦涩位置,与您的本地(或网络路径)不匹配。源文件。

为帮助Visual Studio查找源文件,您可以执行此操作...(您可以通过使用SourceLink来避免此问题,如下所述)

  • 在解决方案资源管理器中选择解决方案,然后从快捷菜单中选择“属性”。
  • 在“公共属性”节点下,选择“调试源文件”。
  • 单击文件夹Tools / Options / Debugging / Symbols文件夹图标图标。可编辑的文本出现在包含源代码的目录列表中。
  • 添加要搜索的路径。

开始调试时,所有符号都会下载,您现在就可以进入源代码。

这并不需要仅禁用我的代码,您也不需要启用源服务器。


除非您正在使用或想使用源服务器。现在添加一些软件包非常容易...

通过AzureDev操作,您可以按照本指南修改构建管道,以利用存储在GIT中的soruce文件。

  

先决条件是.NET Core SDK 2.1.300或桌面msbuild版本   15.7。

在您的软件包项目项目中,您需要添加NuGet软件包“ SourceLink.Create.CommandLine”,这将使您的构建服务器(和本地构建计算机)能够重写便携式PDB的某些部分,而无需更改构建管道中的任何内容。 / p>

您还需要将包添加到正确的源控件。 As described in this article.-我使用的是VSTS,所以我只安装“ Microsoft.SourceLink.Vsts.Git”包(必须在撰写本文时启用Include Prelease)

要验证此功能是否奏效,您需要做的就是构建项目,并在\obj\{config}\{tfm}\中查找名为*.sourcelink.json的文件,并在其中包含正确的URL。

然后按常规打包并发布。

在Visual Studio中,您只需要启用

  • 启用源服务器支持
  • 启用Source Link支持

答案 1 :(得分:0)

您需要运行构建在相同构建中的应用程序作为构建以将符号发布到VSTS Symbol服务器,不同构建中的标识将不同。

您可以在符号加载信息中找到GUID( 0CD368C47775439 ... ),也可以查看发布符号任务的构建日志,还有GUID。在构建中,GUID将是相同的,并且在调试期间将正确加载符号。

答案 2 :(得分:0)

您是否在VS.NET调试选项中启用了源服务器支持? 您也可以在VS.NET调试选项中取消选中“启用我的代码”。

我最近写过blogpost,其中我解释了如何设置和使用符号服务器;可能会找到一些可能对您的问题有所帮助的提示。