首页 > 解决方案 > 如何让 Visual Studio 调试器完全忽略原始源文件位置

问题描述

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

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

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

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

我怎样才能让 VS 变得“笨拙”,这样我就可以在我的机器上模拟在另一台没有此包源的机器上使用包的情况?

提前致谢。

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

解决方案


我怎样才能让 VS 变得“笨拙”,这样我就可以在我的机器上模拟在另一台没有此包源的机器上使用包的情况?

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

细节:

据我们所知:

程序数据库 ( .pdb) 文件,也称为符号文件,将项目源代码中的标识符和语句映射到已编译应用程序中的相应标识符和指令。

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

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

在此处输入图像描述

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

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

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

在此处输入图像描述

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

希望这可以帮助。


推荐阅读