visual-studio - 使用 Visual Studio 2017 调试 NuGet 包

标签 visual-studio debugging .net-core visual-studio-2017

在 Visual Studio 2015 和 .NET Core 开发中,我们可以通过将源代码从源(例如 GitHub)检索到本地磁盘来调试 NuGet 包,在 global.json 中将源路径添加到下载的源代码中并在我们的项目中引用 NuGet 包。这导致对下载的源代码中项目的引用在当前解决方案中自动可见,从而可以轻松调试(有关此功能的更多信息可以阅读 in this article)。
有谁知道如何使用 Visual Studio 2017 做同样的事情?自 global.json我找不到任何解决方案。

最佳答案

我看到这已成为一个流行的问题,但是,实际上可以改进其产品的请求中没有 MS(就目前在 Visual Studio 中的大多数时间而言)。

有一些关于如何使用来自 Microsoft 的引用库的帖子,但这并不适用于所有项目,而且您将调试优化的发布位,这在监视和步进功能方面都受到限制。我也觉得这样做甚至会进一步减慢 Visual Studio 的速度。在 post 中描述了这种方法.

但是,最近我找到了解决此问题的方法。它并不总是稳定的,但可以做的是将相关项目添加到您的项目中作为项目引用。

但这里是我所做的最有效的步骤:

  • 从 github(或其他来源)克隆 nuget 包的存储库
  • 尽力找出 nuget 包是从哪个提交构建的(大多数项目引用带有标签或分支,但不要指望这一点,比较 nuget 包和提交上的日期可能会更好)。
  • 按照项目中有关如何构建它的说明进行操作,有些只是在 Visual Studio 中构建,其他可能需要更多步骤,例如在命令提示符中使用某些构建脚本。
  • 在解决方案中添加对项目的引用,有时您还需要添加项目引用的项目,但并非总是如此。还没有在这里找到确切的规则。似乎较新的 Visual Studio 更新不需要这个。
  • 在您的解决方案中引用 nuget 包的所有项目中添加对项目的引用。不这样做可能会导致编译器尽力(不够好)解决的冲突。

  • 构建和调试,在输出窗口中检查是否使用了位于项目输出文件夹中的程序集。如果是,只需在引用的项目中点击断点,您就会拥有完整的调试功能。

    使这项工作有点尝试和失败,但它最终确实有效。

    可以在项目引用上创建条件以确保它们不是内置的,例如但是,请注意更改配置需要您在更改后重新加载解决方案!

    关于visual-studio - 使用 Visual Studio 2017 调试 NuGet 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42769369/

    相关文章:

    c++ - 在哪里可以找到构建 DirectShow BaseClasses 的项目?

    c# - 中继器内的按钮 Onclick

    rabbitmq - 请求/响应场景中的RequestTimeoutException

    c# - 如何使用多个目标框架测试 .NET 库

    c++如何输出我在函数中操作的数组?

    visual-studio - 在 TeamCity 中更改 app.config 中的值

    javascript - chrome 调试器调用堆栈异步选项是什么意思?

    c# - 格式化跟踪输出

    python - 文件 .gdbinit 的含义是什么?

    .net - Kafka (.NET) 中的消息头