Azure devops 使用Azure Devops和源链接调试NuGet包
我正在尝试让SourceLink使用私有NuGet包。 我正在运行一个netcore2.1 web应用程序,它引用了托管在Azure Devops NuGet提要上的netstandard2.0 NuGet包 问题1:源链接是否支持.NET标准包 我遵循了指南中的说明,基本上是:Azure devops 使用Azure Devops和源链接调试NuGet包,azure-devops,sourcelink,Azure Devops,Sourcelink,我正在尝试让SourceLink使用私有NuGet包。 我正在运行一个netcore2.1 web应用程序,它引用了托管在Azure Devops NuGet提要上的netstandard2.0 NuGet包 问题1:源链接是否支持.NET标准包 我遵循了指南中的说明,基本上是: 将索引源和发布符号包添加到my Azure Devops构建中 在VisualStudio中,将VSTS服务器添加为符号服务器 在Visual Studio中,启用源链接支持。我还尝试启用源服务器支持 构建管道发布符号
已成功处理D:\a\1\s\src\MyCompany.Core.Services.SnapshotClient\bin\release\netstandard2.0\MyCompany.Core.Services.SnapshotClient.pdb:
当我开始调试我的应用程序时,我在VS output窗口中看到一系列输出:
'dotnet.exe'(CoreCLR:clrhost):加载了'C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\2.1.4\Microsoft.AspNetCore.Hosting.dll'。找不到或无法打开PDB文件。
对于我的NuGet软件包,我看到“加载符号”,这似乎很有希望
FWIW我没有看到Visual Studio提示“源链接将从internet下载”
当我调试并尝试进入我的NuGet包时,它只是跳过它
然后我试着:
真的
并从my.nupkg在.pdb上运行sourcelink打印URL
。我想看起来对吧?存在URL
.csproj
文件中所做的更改:
<PropertyGroup>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<AllowedOutputExtensionsInPackageBuildOutputFolder>
$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb
</AllowedOutputExtensionsInPackageBuildOutputFolder>
</PropertyGroup>
...
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0-beta-63127-02" PrivateAssets="All"/>
</ItemGroup>
真的
真的
我想是的。但我删除了引用,重新构建在Azure DevOps上,并且仍然能够逐步浏览库。也许这对于不同的环境是必要的(我只是留着以防万一)
FWIW:
- 我正在使用Visual Studio 15.8.9进行调试
- 我最新安装的.NET核心SDK是2.1.403
- 我的库的使用者是.NETCore2.1可执行文件
- 我使用编译库,并将其调用到
dotnetmsbuild
我写了一篇关于如何使用.NET Core和AzureDevops实现这一点的完整文章,但这些步骤也适用于.NET标准项目
也就是说,微软文档中缺少的一些关键要点是:
- 项目的调试信息需要从“可移植”更改为“完整”
- AzureDevOps Nuget(恢复、构建、打包和推送)需要使用.NET核心任务
- .NET核心构建任务应该有一个参数“-configuration”,该参数传递值“debug”。这样做会生成.PDB文件
- .NET核心包任务应使用“custom”命令,其中custom命令为“pack”,并具有以下参数:“--include symbols-vd”和传入值“debug”的“-c”。这样做会告诉pack命令在包中包含.PDB文件
我试过了,得到了软件包元数据中的链接,但仍然不起作用。我看到我的包不包含任何pub文件,只包含一个dll。你能告诉我们你的包裹里有什么内容吗?我还使用了cake中的Nuget包任务。有什么特别的设置吗?你能提供一些关于建筑的更多信息吗?我发现pdb文件没有包括在内,因为我拼错了AllowedOutputExtensionsInPackageBuildOutputFolder标记。其中包括pub文件。无论如何,我还是无法进入包裹。您能提供一些有关Visual Studio选项中调试设置的详细信息吗?嗯,听起来很令人沮丧!在VS中,当我进入Debug
->选项
->常规
时,我已经选中了仅启用我的代码
,还选中了启用源代码链接支持
。@fra当你说你不能进入包时,到底发生了什么?您是否看到一个弹出窗口询问您是否要从远程回购下载源代码?这听起来非常令人沮丧,但很高兴您终于找到了根本问题!谢谢埃里克。当时我至少花了一天的时间想弄明白,并尝试了其中的一些选择。我已经离开了那份工作,但如果我再尝试一下,我会参考你的博客。哇,我应该在把我的问题发布到博客上之前阅读这个答案。这应该是可以接受的答案,因为不再需要在Nuget包中包含.pdb
文件recommended@Eric您网站的证书无效。你可能想检查一下。