我正在尝试为我们的内部NuGet软件包启用SourceLink,但遇到一个无法解决的问题。
我的设置是:
- Visual Studio 2019企业版(16.3.8)
- Azure DevOps git存储库
- .NET Framework 4.7.2类库,其中包含一个包含单个HelloWorld类的SDK样式项目
- 使用最新版本(1.0.0-beta2-19554-01)到microsoft.SourceLink.AzureRepos.Git的PackageReference
- 该项目生成一个包含DLL和PDB的程序包(我知道这样做是不鼓励的,但是我想让它以这种方式工作而不是使用符号服务器;这似乎也不是DLL的来源)问题,因为调试器找到了正确的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
将其发布到本地的NuGet feed。 - 我删除了本地HelloWorld源,因此调试器找不到这些源,并尝试从git存储库中下载它们
- 我创建一个控制台应用程序,引用此NuGet包,然后在HelloWorld类上调用HelloWorld函数。在调试器中,我按F11进入HelloWorld调用。出现“ SourceLink将下载[...]”对话框,然后选择“下载源并继续调试”。
这不起作用。我收到以下错误消息
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。还是一样的错误。
我有点迷茫。有人知道我还能尝试什么吗?