【问题标题】:How to get visual studio debugger to completely ignore original source file location如何让 Visual Studio 调试器完全忽略原始源文件位置
【发布时间】:2018-11-15 21:42:23
【问题描述】:

我正在开始将内部类库(.net 框架、C#)迁移到一系列 nuget .net 标准包,我们也将在内部提供这些包。我正处于研究阶段。

我正在尝试使用 VS (2017) 调试器进行研究,并努力为软件包的调试版本(带符号)和发布版本(不带符号)的位置创建我们的约定。

我在一个解决方案中构建了一个小的虚拟 .net 标准包,并使用 nuget add 将其放置在文件共享中。而且我已经成功地在不同的解决方案中使用了它。

但是,当我尝试进入消费解决方案中的代码时,不知何故,Visual Studio 正在做一些聪明的事情,实际上是在其原始位置将我带入源代码。从某些方面考虑这很好,但我想模拟不同开发人员在不同机器上使用包并且没有可用的原始源的情况,这样进入打包代码的唯一方法是使用带有符号的调试版本。但是视觉工作室通过找出原始源位置来挫败我,我不知道它是如何做到的。

我怎样才能让 VS 变得“笨”,这样我就可以在我的机器上模拟在没有这个包源的另一台机器上使用包会是什么?

提前致谢。

【问题讨论】:

    标签: c# visual-studio debugging nuget visual-studio-debugging


    【解决方案1】:

    我怎样才能让 VS 变得“笨”,这样我就可以在我的机器上模拟在没有这个包源的另一台机器上使用包会是什么?

    您可以尝试指定要从自动加载中排除的 .net 标准项目的符号

    详情:

    据我们所知:

    The Program database (.pdb) files,也叫符号文件,map 项目源代码中的标识符和语句 编译后的应用程序中对应的标识符和指令。

    符号文件还显示源文件的位置,并且 可选的,从中检索它们的服务器。

    Visual Studio 中调试符号加载的默认设置是加载所有模块

    这就是为什么 Visual Studio 很聪明,并且实际上在其原始位置将您带入源代码的原因。

    因此,要解决此问题,我们需要禁用 Visual Studio“加载所有模块”,我们可以为您的 .net 标准项目指定排除模块。

    要完成此操作,请单击该窗口上的链接,然后添加您的 .net 标准的名称:

    然后 Visual Studio 变得“笨”,找不到原始位置。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-27
      • 2012-11-28
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-22
      相关资源
      最近更新 更多