为什么我不能使用 sourcelink 调试我的 nuget 包?

Why can't I debug my nuget package with sourcelink?

我在我的 csproj 中启用了源 link 并使用 github 操作来发布我的 nuget,但是添加了 PublishRepositoryUrl 属性 和引用 Microsoft.SourceLink.GitHub 包。

但是,当我引用包时,我无法进入代码,也无法进入定义:

<Project Sdk="Microsoft.NET.Sdk.Razor">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
    <PackageProjectUrl>https://github.com/Liero/vNext.BlazorComponents</PackageProjectUrl>
    <PublishRepositoryUrl>true</PublishRepositoryUrl>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="all" />
  </ItemGroup>

</Project>

我错过了什么?所有源代码都可以在这里找到 https://github.com/Liero/vNext.BlazorComponents

编辑: 当我 运行 一个引用包的项目时,看起来符号是根据调试输出加载的:

'iisexpress.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App.0.3\Microsoft.AspNetCore.Components.Web.dll'. Symbol loading disabled by Include/Exclude setting.
'iisexpress.exe' (CoreCLR: clrhost): Loaded 'C:\Projects\liero\BlazorComponents\BlazorApp1\bin\Debug\net5.0\vNext.BlazorComponents.dll'. 

我还在 Visual Studio 中禁用了我的代码调试。

如果有人想尝试,这里是重现的步骤:

  1. 在 Visual Studio

    中创建新的 Blazor 项目
  2. 添加包参考 vNext.BlazorComponents

  3. 修改index.razor:

     @page "/"
     @using vNext.BlazorComponents.Grid
    
     <SimpleGrid TRow="object" @ref="grid"></SimpleGrid>
    
     @code {
         SimpleGrid<object> grid;
    
             protected override void OnAfterRender(bool firstRender)
             {
                 base.OnAfterRender(firstRender);
                 grid.Refresh(); // put breakpoint here and step into
             }
     }
    
  4. 运行 应用

SourceLink 需要编辑器的支持。 VS2019,Rider 支持,VS code 不支持。 要在 VS2019 中启用调试,请在 Tool - options - debugging - general 中禁用 Just my code

<PublishRepositoryUrl>true</PublishRepositoryUrl>

<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="all" />

还不够。我还必须添加:

<PropertyGroup>
  <EmbedUntrackedSources>true</EmbedUntrackedSources>
  <DebugType>embedded</DebugType>
</PropertyGroup>  

<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
  <ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
</PropertyGroup>

然后我可以进入从 github

下载的 nuget 源