【发布时间】:2011-04-25 03:08:00
【问题描述】:
如果我附加到应用程序的进程并进行调试,然后停止调试并重新编译依赖程序集,是否可以向我的应用程序添加逻辑,该逻辑对该程序集执行卸载/重新加载,以便我能够重新附加到进程并再次调试而不重新启动?
【问题讨论】:
标签: c# debugging visual-studio-2010 remote-debugging
如果我附加到应用程序的进程并进行调试,然后停止调试并重新编译依赖程序集,是否可以向我的应用程序添加逻辑,该逻辑对该程序集执行卸载/重新加载,以便我能够重新附加到进程并再次调试而不重新启动?
【问题讨论】:
标签: c# debugging visual-studio-2010 remote-debugging
我想从技术上讲,如果您的代码被编写为动态加载程序集(如插件程序集),那么它可能是可行的,但即便如此,它也只有在没有使用程序集的类/资源时才有效。因此,出于所有实际目的,不:您启动的就是您正在运行的。
也就是说,您尝试的操作听起来与 Visual Studio 中的编辑并继续操作非常接近。你试过吗?为什么首先需要重新编译程序集?
【讨论】:
Assembly.Load),那么您可以想象卸载它并重新加载不同的版本 - 但您将无法维护 DLL 中任何类的实例。不过,您实际上要解决的问题是什么?
你可以试试Shadow Copy Cache。 我从它在 NUnit 中的使用中知道它,您可以在其中更改您的测试\测试代码而无需重新启动 NUnit GUI。
【讨论】: