VSTS 中的 SourceLink

SourceLink in VSTS

我正在尝试使用 https://github.com/ctaggart/SourceLink 将 SourceLink 集成到 Visual Studio 团队服务中 我遇到了问题,因为该包似乎无法解析 VSTS 存储库的 URL。

Build started 8/22/2017 11:58:18 AM.
 1>Project "D:\Repos\Core\classic-stats\src\Acme.Stats\Acme.Stats.csproj" on node 1 (Build target(s)).
 1>SourceLinkCreate:
     git rev-parse --show-toplevel
     D:/Repos/Core/classic-stats
     git config --get remote.origin.url
     https://acme.visualstudio.com/DefaultCollection/Core/_git/classic-stats
     git rev-parse HEAD
     8c6a68b325cf10b67332aa2ea15db952a88d027d
     SourceLinkUrl:
     unable to convert OriginUrl: https://acme.visualstudio.com/DefaultCollection/Core/_git/classic-stats
 1>Done Building Project "D:\Repos\Core\classic-stats\src\Acme.Stats\Acme.Stats.csproj" (Build target(s)) -- FAILED.

Build FAILED.
0 Warning(s)
0 Error(s)

AFAIK 仅支持 GitHub 和 BitBucket,对吗? 有人能够将其集成到 TFS 构建中吗? 谢谢

正如 Skorunka 在 中所述,SourceLink 现在支持 VSTS(最近更名为 Azure DevOps

在您的项目中安装 Microsoft.SourceLink.Vsts.Git Microsoft.SourceLink.AzureRepos.Git 包并将以下内容添加到您的 .csproj 文件

<PropertyGroup>
    [...]
    <AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
    <PublishRepositoryUrl>true</PublishRepositoryUrl>
    <EmbedUntrackedSources>true</EmbedUntrackedSources>
</PropertyGroup>

配置构建管道以使用 dotnet pack 命令生成 Nuget 包。 SourceLink 不适用于 Nuget pack(根据我的测试)。

将您的更改推送到您的 Azure DevOps 服务器,让构建管道生成您的 Nuget 包并将其推送到您的 Nuget 提要。

在 Visual Studio 中转到 tools -> Option -> Debugging -> General 并确保

  • Enable just my code 未选中
  • Enable SourceLink support 勾选

然后在任何其他项目中,安装您的 Nuget 包。

当您尝试进入包的 DLL 中定义的某些代码时,Visual Studio 会询问您是否要 Download source code and continue debugging。它将使用您的 Git 凭据对您的 Azure DevOps 服务器进行身份验证,下载源代码,然后让您对其进行调试。