为什么我不能使用 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 中禁用了我的代码调试。
如果有人想尝试,这里是重现的步骤:
在 Visual Studio
中创建新的 Blazor 项目
添加包参考 vNext.BlazorComponents
修改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
}
}
运行 应用
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 源
我在我的 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 中禁用了我的代码调试。
如果有人想尝试,这里是重现的步骤:
在 Visual Studio
中创建新的 Blazor 项目添加包参考 vNext.BlazorComponents
修改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 } }
运行 应用
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 源