如果输出目录不是调用应用程序正在调用的位置,则不会命中C#Dll调试断点

问题描述 投票:0回答:1

根据debug-from-the-dll-project

DLL输出是否有任何解决方法不是调用应用程序正在调用的位置?

我想通过start external program调试DLL,程序将在启动时加载DLL。这意味着程序启动后,我直接按下F5而不是attach to process

为了不污染真实目标目录,我通过构建后事件将dll和pdb复制到真实目标目录。

但是断点未命中。

为此有任何解决方法吗?


我想我应该用尽可能少的单词来描述这个复杂的问题。

现在我有两个项目名为:ProjectExeProjectDll

[ProjectExe输出目录是:D:\ProjectExe\bin\

[ProjectDll输出目录是:D:\ProjectDll\bin\

D:\ProjectExe\bin\中有一个名为Plugins的目录,所以它是D:\ProjectExe\bin\Plugins\

ProjectDll 构建后事件命令行:

XCOPY D:\ProjectDll\bin\*.dll D:\ProjectExe\bin\Plugins\ /Y
XCOPY D:\ProjectDll\bin\*.pdb D:\ProjectExe\bin\Plugins\ /Y

[ProjectExe输出一个a.exe,它将在启动后通过D:\ProjectExe\bin\Plugins\加载Assembly.LoadFrom(string path)中的所有dll。

这里是ProjectDll设置:

enter image description here

[确定,现在我从ProjectDll中按F5,启动a.exe,然后触发a.exe来调用dll中的方法,但是ProjectDll中的断点未命中 !!!

如果现在我分离,请手动重新附加到a.exe进程,然后触发a.exe以调用dll内部的方法,即断点hit !!!

所以我的问题是在这种情况下如何使断点命中而无需重新连接?

c# visual-studio visual-studio-debugging
1个回答
0
投票

但是断点未命中。为此有任何解决方法吗?

© www.soinside.com 2019 - 2024. All rights reserved.