Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2015 从GAC远程调试程序集_Visual Studio 2015_Remote Debugging - Fatal编程技术网

Visual studio 2015 从GAC远程调试程序集

Visual studio 2015 从GAC远程调试程序集,visual-studio-2015,remote-debugging,Visual Studio 2015,Remote Debugging,我有一个在GAC中注册的程序集,用于Win10机器上的x86。该程序集是为.NET4.5编译的。现在我正在尝试远程调试这个程序集,以便确定客户对它的问题 因此,我从程序集所在的主机启动了msvmon.exe。我还在调试机器上安装了相应的pdb文件,并适当设置了由调试-->选项-->调试-->符号指示的路径,如下面的imagbe所示 现在,当我在“附加到进程”窗口中键入msvmon运行的主机名和端口,并在源代码中添加断点时,它不会被命中。它特别指出“当前文档未加载任何符号” 另一方面,当我尝试

我有一个在GAC中注册的程序集,用于Win10机器上的x86。该程序集是为.NET4.5编译的。现在我正在尝试远程调试这个程序集,以便确定客户对它的问题

因此,我从程序集所在的主机启动了msvmon.exe。我还在调试机器上安装了相应的pdb文件,并适当设置了由调试-->选项-->调试-->符号指示的路径,如下面的imagbe所示

现在,当我在“附加到进程”窗口中键入msvmon运行的主机名和端口,并在源代码中添加断点时,它不会被命中。它特别指出“当前文档未加载任何符号”

另一方面,当我尝试调试一个不在GAC中的程序集时,我可以很容易地调试它——即使我没有指定pdb文件的路径(我从第一个映像中取消选中pdb位置以验证这一点)。因此,我很确定没有网络相关的问题


因此,我想知道当程序集在GAC中重新注册时,VS在哪里查找pdb文件。

我通过将pdb文件也放入调试机器的GAC中来解决这个问题

因此,即使pdb文件的路径由调试-->选项-->调试-->符号指示,这似乎也不适用于GAC中的程序集。必须将pdb文件放在部件旁边。通常我们甚至不需要调试机器上的程序集。然而,我不确定这是否也适用于这种情况


无论如何,如果您在本地调试,这也适用。当程序集位于GAC中时,其pdb文件也需要保留在GAC中

这取决于组件是如何构建的。发布版本的几率较低,但使用默认设置,它仍会记录PDB的原始位置。只要看一看,使用调试>窗口>模块,在列表中找到程序集。右键单击>符号加载信息。@HansPassant给了我一个想法。因此,我尝试手动将pdb路径设置为与图1所示完全相同的路径。这导致错误“在此文件夹中找不到匹配的符号文件”,尽管它在那里。现在,当我将完全相同的pdb从该文件夹复制到GAC中时,调试器可以解析路径并加载文件。