1

我正在尝试为我们的内部 NuGet 包启用 SourceLink,但遇到了一个我不知道如何解决的问题。

我的设置是:

  • Visual Studio 2019 企业版 (16.3.8)
  • Azure DevOps git 存储库
  • 具有 SDK 样式项目的 .NET Framework 4.7.2 类库,其中包含单个 HelloWorld 类
  • 使用最新版本 (1.0.0-beta2-19554-01) 对 Microsoft.SourceLink.AzureRepos.Git 的 PackageReference
  • 该项目生成一个包含 DLL 和 PDB 的包(我知道不鼓励这样做,但我想让它以这种方式工作而不是使用符号服务器;这似乎也不是问题的根源,因为调试器找到了正确的 PDB)

项目文件

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net472</TargetFramework>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
    <AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
    <RepositoryUrl>https://<host>.visualstudio.com/<project>/_git/Lib</RepositoryUrl>
    <RepositoryType>git</RepositoryType>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
    <FileVersion>2.0.0.0</FileVersion>
    <Version>2.0.0</Version>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.SourceLink.AzureRepos.Git" Version="1.0.0-beta2-19554-01">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
  </ItemGroup>
</Project>
  • 我将更改提交到存储库并构建包。该软件包构建良好。当我检查生成的 .nuspec 文件时,它包含正确的提交哈希。
  • 我使用nuget add Lib.2.0.0.nupkg -Source C:\NuGet.
  • 我删除了本地 HelloWorld 源,因此调试器找不到这些源并尝试从 git 存储库下载它们
  • 我创建了一个控制台应用程序,引用了这个 NuGet 包,并在 HelloWorld 类上调用了 HelloWorld 函数。在调试器中,我按 F11 进入 HelloWorld 调用。“SourceLink will download [...]”对话框出现,我选择“Download Source and Continue Debugging”。

这不起作用。我收到以下错误消息

Source Link Error:
ERROR: Azure DevOps: Authentication failed for all accounts. Use 'File -> Account Settings...' to add a new account or refresh credentials.

Source Link URL: https://<host>.visualstudio.com/<project>/_apis/git/repositories/Lib/items?api-version=1.0&versionType=commit&version=cf94d5a0f224b6983c3885a2a6ac29aa52cec418&path=/HelloWorld/HelloWorld.cs

现在,错误消息很清楚,我只是不明白。当我转到错误消息中所述的 URL 时,我看到了我期望的文件内容。我使用了一个从不用于检查的浏览器,当导航到此页面时,它要求我登录,我使用在 Visual Studio 中使用的相同帐户登录。我还尝试退出 Visual Studio,重新启动它,然后使用我在浏览器中使用的相同帐户再次登录到 Visual Studio。还是同样的错误。

我有点迷路了。有人知道我还能尝试什么吗?

4

0 回答 0