它是如何找到源代码的?

时间:2014-01-21 17:21:17

标签: c# .net dll

我正在测试DLL,BeamController.dll的部署,通过从测试程序Caller1调用它。

BeamController和Caller1都是C#,。Net 4.5程序;每个都在他们自己独立的Visual Studio项目中。 Caller1是WPF。

我将BeamController.dll移动到C:\ temp( N.B。只是DLL,而不是PDB ),在Caller1项目中我做了一个添加引用来获取它。在我的Caller1代码中,我实例化了BeamController类的一个实例并调用了一个方法。相关代码在这里。 。 。

using BeamController;

namespace Caller1
{
    public partial class MainWindow : Window
    {
        private CBeamController BC;

        public MainWindow()
        {
            InitializeComponent();
            BC = new CBeamController;
            BC.SetFocusLog(1, "C:\\temp\\log.txt");
        }
    }
}

它构建并运行良好。 这是我的问题:如果我在调试器中运行Caller1并进入方法 SetFocusLog(),它将进入BeamController代码中该方法的源代码。它是如何知道源代码的位置的?我假设它的一些引用必须存储在DLL中。 BeamController项目的构建设置控制了什么?

1 个答案:

答案 0 :(得分:1)

它是DLL和匹配的PDB文件的混合体。 PDB文件实际上指向磁盘文件和行号,这是调试器跟踪的一种方式。