源链接无法从私有 azure 符号服务器下载 nuget 的源文件,使用了错误的域 dev.azure.com/raw/

Posted

技术标签:

【中文标题】源链接无法从私有 azure 符号服务器下载 nuget 的源文件,使用了错误的域 dev.azure.com/raw/【英文标题】:Source link can't download source files for nuget from private azure symbol server, uses wrong domain dev.azure.com/raw/ 【发布时间】:2019-09-16 10:03:45 【问题描述】:

TL;DR

使用了 Azure devops,带有源链接的 VS 尝试开源表单 https://dev.azure.com/raw/... 出现 404 错误,看起来域生成模式错误

我们有 nuget 包并希望启用对其源代码的调试。一切都是通过 azure devops 完成的,任务“https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/index-sources-publish-symbols?view=azure-devops”是在构建 nuget 时设置的。

在 Visual Studio 中,启用“使用源链接”并禁用“仅我的代码”。 VS 中的源服务器设置为带有私有凭据的 dev.azure.com。

在找到并加载调试符号时,出现有关“源链接将从互联网下载源”的警报,但随后在日志中提到 404 错误

它会尝试下载 https://dev.azure.com/raw/SomeName/SomeProject/_git/XXX.Library/8ab2f2673396a762aeb7d70fbdca85357ec731d0/XXX.Library/Utils/ApiProxy.cs 在浏览器中,我也无法以 404 状态访问此文件。

但是通过 Azure UI 我可以找到这个文件,例如通过 https://dev.azure.com/SomeName/SomeProject/_git/XXX.Library/commit/e982b34fa3ff2524eb0f479197369555e64534f2?refName=refs%2Fheads%2Fmaster&_a=contents&path=%2FXXX%2FUtils%2FApiProxy.cs

所以看起来源链接使用 github.com 模式而不是 azure 相关模式生成路径。

【问题讨论】:

您说“VS 中的源服务器设置为具有私有凭据的 dev.azure.com。”,您是如何设置的,您介意分享一张有关此的图片吗?此私有凭据是否与您在 Azure Devops 中使用的凭据相同?如果可能,您可以检查此线程是否提供任何帮助:***.com/questions/54980381/… 【参考方案1】:

终于找到问题了,nuget包有参考<PackageReference Include="Microsoft.SourceLink.GitHub" ../>, 对于 azure devops 上的源,它应该是 <PackageReference Include="Microsoft.SourceLink.Vsts.Git" ../>

【讨论】:

以上是关于源链接无法从私有 azure 符号服务器下载 nuget 的源文件,使用了错误的域 dev.azure.com/raw/的主要内容,如果未能解决你的问题,请参考以下文章

访问 Azure Pipelines 中私有 Nuget 服务器中托管的 Nuget 包

托管您自己的 NuGet 和符号源服务器?

无法从Web应用程序访问Azure公共和私有证书

无法使用 jfrog cli 从工件下载符号链接

如何通过私有 DNS 名称从虚拟网络中的应用服务访问 Azure VM?

TFS内部部署无法从私有源恢复nuget包