[英]Debugging NuGet packages using Visual Studio 2017
在 Visual Studio 2015 和 .NET Core 开发中,我们可以通过将源代码从源(例如 GitHub)检索到本地磁盘,将源路径添加到global.json
下载的源代码并在中引用 NuGet 包来global.json
NuGet 包我们的项目。 这导致对下载的源代码中的项目的引用在当前解决方案中自动可见,从而可以轻松调试(有关此功能的更多信息可以在本文中阅读)。
有谁知道如何使用 Visual Studio 2017 做同样的事情? 由于global.json
消失了,我找不到任何解决方案。
我看到这已成为一个流行的问题,但是,实际上可以改进其产品的请求中没有 MS(就目前在 Visual Studio 中的大多数时间而言)。
有一些关于如何使用来自 Microsoft 的参考库的帖子,但这并不适用于所有项目,而且您将调试优化的发布位,这限制了监视和步进功能。 我也觉得这样做甚至会进一步减慢 Visual Studio 的速度。 这篇文章中描述了这种方法。
但是,最近我找到了解决此问题的方法。 它并不总是稳定的,但可以做的是将相关项目添加到您的项目中作为项目参考。
但这里是我所做的最有效的步骤:
构建和调试,在输出窗口中检查是否使用了位于项目输出文件夹中的程序集。 如果是,只需在引用的项目中点击断点,您就会拥有完整的调试功能。
使这项工作有点尝试和失败,但它最终确实有效。
可以在项目引用上创建条件以确保它们不是内置在例如发布版本中,但是,请注意更改配置需要您在更改后重新加载您的解决方案!
我已经为此挣扎了很长时间。 这是我发现可重复使用的最简单方法:
创建本地 nuget 源:
将刚刚创建的 .nuget 文件放在 C:\\Nuget 中(例如)
在 Visual Studio 中,选择工具/选项/Nuget 包管理器/包源
按绿色 (+) 图标。 将路径添加到您在上面创建的本地 nuget 包 (C:\\Nuget) 并将包源移动到列表顶部。
在您的解决方案中,对于每个项目,删除先前对外部 nuget 包的引用,并从本地 nuget 源添加新的 nuget 包。
开始调试,您应该能够进入 nuget 包的代码。
我可以在我构建 nuget 包的源代码中设置一个断点,并在我运行代码时让它中断。
上面的所有步骤都有点烦躁,您可能需要玩几次才能让它工作。
如果这对你有用,请在评论中告诉我。 如果是这样,我将不胜感激! :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.