.NET 转到 NuGet 包的实现

Posted

技术标签:

【中文标题】.NET 转到 NuGet 包的实现【英文标题】:.NET Go To Implementation of a NuGet package 【发布时间】:2018-09-05 13:00:03 【问题描述】:

是否有人知道一种方法/工具可以让我浏览来自 NuGet 包的方法/类型的实现(通过拥有原始的PDB或获取它们的URL)。

我知道SourceLink,事实上我正在使用它。但是,源链接是一种调试器功能,允许它在调试时下载源代码。我需要能够在不调试的情况下浏览我的源代码。 (比如按某种方法按 F12)。

奇怪的是,SourceLink 会下载原始源的副本,所以我只需要将 Visual Studio 链接到源文件即可。

我尝试使用 JetBrains 中的 dotPeek,但我只是设法让它作为符号服务器工作,这再次很有帮助 - 但仅限于调试时。

【问题讨论】:

【参考方案1】:

您应该能够使用 JetBrains Resharper 做到这一点。

如果您的代码使用来自 NuGet 程序集的接口 - 或来自任何不是您自己的程序集的接口 - 您必须按 F12 - 转到定义 - 在您感兴趣的方法上。这将导航到源代码的界面。 然后,您必须按 Ctrl + F12 - 转到实现 - 才能转到此程序集中该接口的实现。 据我所知,您不能直接在代码中使用 Ctrl + F12,因为它只会搜索代码中的实现。

【讨论】:

是的,您上面提到的所有内容都是正确的。我们将考虑在未来购买 ReSharper,但在那一刻到来之前 - 我们正在寻找免费工具或视觉工作室功能,也许我们可以在其上编写自己的工具。仍然感谢您提供的信息,最后我们可能会使用 ReSharper :) 这不只是反编译文件吗?在某些情况下,反编译的代码会与原始代码略有不同。再加上所有的 cmets 和缩进都将被剥离 @arthur.borisow 如果配置正确,Resharper 首先会尝试通过从符号服务器下载原始 PDB 来定位它。 是否有关于如何设置所有内容的文档?最好是 f#?

以上是关于.NET 转到 NuGet 包的实现的主要内容,如果未能解决你的问题,请参考以下文章

从 TFVC 源代码管理中排除 Nuget 包的步骤是啥?

如何检查我的 C# 应用程序是不是使用来自 nuget 包的正确平台特定 dll?

net6 swagger与IdentityServer集成登录验证,完美解决调试部署等问题

net6 swagger与IdentityServer集成登录验证,完美解决调试部署等问题

net6 swagger与IdentityServer集成登录验证,完美解决调试部署等问题

一篇万字长文读懂微软PDBSourceLink——.net core之nuget 包调试