我正在尝试为我们的内部 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。还是同样的错误。
我有点迷路了。有人知道我还能尝试什么吗?