3

我正在尝试使用https://github.com/ctaggart/SourceLink将 SourceLink 集成到 Visual Studio Team Services 中 我遇到了问题,因为该包似乎无法解析 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 构建中?谢谢

4

1 回答 1

3

正如 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 服务器进行身份验证,下载源代码并让您对其进行调试。

于 2018-10-24T04:18:14.197 回答