转到使用源代码实现链接
Go to Implementation with sourcelink
如何为使用 SourceLink 公开的库代码启用 visual studio 到 'Go to implementation'?
我们最近开始在我们的 .NETcore 库中使用 SourceLink,试图在使用它的同时调试该库。我们使用此项目启用了 SourceLink:ctaggart/SourceLink 通过将以下行添加到我们的 csproj:
<PackageReference Include="SourceLink.Embed.AllSourceFiles" Version="2.6.0" PrivateAssets="All" />
这非常有效,因为我现在可以使用调试器进入库代码,但我无法跳转到任何此库代码的 implementation/definition。有没有办法让我 visual studio 做到这一点?
SourceLink 现在是位于 https://github.com/dotnet/sourcelink/ 的 .NET Foundation 项目。
首先,配置 Source Link 的行为方式:
You can enable SourceLink experience in your own project by setting a
few properties and adding a PackageReference to a SourceLink package:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<!-- Optional: Publish the repository URL in the built .nupkg (in the NuSpec <Repository> element) -->
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<!-- Optional: Embed source files that are not tracked by the source control manager in the PDB -->
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<!-- Optional: Include the PDB in the built .nupkg -->
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
</PropertyGroup>
<ItemGroup>
<!-- Add PackageReference specific for your source control provider (see below) -->
</ItemGroup>
</Project>
然后,添加与您的存储库匹配的源 Link 包。软件包目前处于预发布阶段,这些是可用的:
github.com 和 GitHub 企业
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0-beta-63127-02" PrivateAssets="All"/>
</ItemGroup>
Visual Studio 团队服务
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.Vsts.Git" Version="1.0.0-beta-63127-02" PrivateAssets="All"/>
</ItemGroup>
团队基础服务器
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.Tfs.Git" Version="1.0.0-beta-63127-02" PrivateAssets="All"/>
<SourceLinkTfsGitHost Include="tfs-server-name" VirtualDirectory="tfs"/>
</ItemGroup>
GitLab
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.GitLab" Version="1.0.0-beta-63127-02" PrivateAssets="All"/>
</ItemGroup>
Bitbucket.org
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.Bitbucket.Git" Version="1.0.0-beta-63127-02" PrivateAssets="All"/>
</ItemGroup>
能够导航到 NuGet 包的源是正在考虑但尚未完成的事情。您可以在 https://github.com/dotnet/roslyn/issues/24349.
跟踪其进度
如何为使用 SourceLink 公开的库代码启用 visual studio 到 'Go to implementation'?
我们最近开始在我们的 .NETcore 库中使用 SourceLink,试图在使用它的同时调试该库。我们使用此项目启用了 SourceLink:ctaggart/SourceLink 通过将以下行添加到我们的 csproj:
<PackageReference Include="SourceLink.Embed.AllSourceFiles" Version="2.6.0" PrivateAssets="All" />
这非常有效,因为我现在可以使用调试器进入库代码,但我无法跳转到任何此库代码的 implementation/definition。有没有办法让我 visual studio 做到这一点?
SourceLink 现在是位于 https://github.com/dotnet/sourcelink/ 的 .NET Foundation 项目。
首先,配置 Source Link 的行为方式:
You can enable SourceLink experience in your own project by setting a few properties and adding a PackageReference to a SourceLink package:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<!-- Optional: Publish the repository URL in the built .nupkg (in the NuSpec <Repository> element) -->
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<!-- Optional: Embed source files that are not tracked by the source control manager in the PDB -->
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<!-- Optional: Include the PDB in the built .nupkg -->
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
</PropertyGroup>
<ItemGroup>
<!-- Add PackageReference specific for your source control provider (see below) -->
</ItemGroup>
</Project>
然后,添加与您的存储库匹配的源 Link 包。软件包目前处于预发布阶段,这些是可用的:
github.com 和 GitHub 企业
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0-beta-63127-02" PrivateAssets="All"/>
</ItemGroup>
Visual Studio 团队服务
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.Vsts.Git" Version="1.0.0-beta-63127-02" PrivateAssets="All"/>
</ItemGroup>
团队基础服务器
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.Tfs.Git" Version="1.0.0-beta-63127-02" PrivateAssets="All"/>
<SourceLinkTfsGitHost Include="tfs-server-name" VirtualDirectory="tfs"/>
</ItemGroup>
GitLab
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.GitLab" Version="1.0.0-beta-63127-02" PrivateAssets="All"/>
</ItemGroup>
Bitbucket.org
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.Bitbucket.Git" Version="1.0.0-beta-63127-02" PrivateAssets="All"/>
</ItemGroup>
能够导航到 NuGet 包的源是正在考虑但尚未完成的事情。您可以在 https://github.com/dotnet/roslyn/issues/24349.
跟踪其进度