好的,在解决如何在运行时热加载DLL后(请参阅我之前的帖子),我注意到在新加载的DLL中插入的断点并没有被触发。
情况
我有一个服务器应用程序,我想避免每次更改动态加载的DLL(通过反射)时终止/重新运行它。
目标
这是我正在尝试做的事情(我知道这本身可能不可能):
- 运行Application.exe
- 在其中使用新的AppDomain加载Process.dll并运行进程
- 调试Process.dll
- 卸载Process.dll
- 编辑Process代码,重新编译Process.dll
- 在Application.exe中动态重新加载它
- 调试Process.dll
- 等等...
问题
我注意到,当以调试模式启动Application.exe时,从另一个AppDomain加载的代码无法被连接到Application.exe的调试器访问
(我猜如果我直接从可执行文件启动Application.exe,没有办法让VS调试器调试任何东西,包括新加载的DLL)
可能的解决方法
一个解决方法(丑陋的)是将DLL的“注入”分离到一个单独的可执行文件中,然后可以通过VS调试器进行监视。
我必须承认我有点困惑。 有什么有效、清晰的想法吗?