Ошибка аутентификации SourceLink при использовании Microsoft.SourceLink.AzureRepos.Git - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь включить SourceLink для наших внутренних пакетов NuGet и сталкиваюсь с проблемой, когда не вижу, как ее решить.

Моя настройка:

  • Visual Studio 2019 Enterprise (16.3.8)
  • Git-репозиторий Azure DevOps
  • Библиотека классов .NET Framework 4.7.2 с проектом в стиле SDK, содержащим один класс HelloWorld
  • PackageReference на Microsoft.SourceLink.AzureRepos.Git, используя последнюю версию (1.0.0-beta2-19554-01)
  • Этот проект создает пакет, который включает в себя 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, используя nuget add Lib.2.0.0.nupkg -Source C:\NuGet.
  • Я удаляю свои локальные источники 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, используя ту же учетную запись, которую я использовал в браузере. Все та же ошибка.

Я немного потерян. Кто-нибудь имеет представление о том, что еще я мог бы попробовать?

...