use*_*819 5 .net c# debugging .net-assembly visual-studio-2015
我的.NET应用程序可以将同一程序集的多个版本加载到内存中.程序集未签名,但每次编译和装载新的程序集时,它都会自动获得一个新的程序集版本(小部分).我对类型没有任何问题,因为实例化ob对象是受控制的,所以我知道对象是从哪个程序集创建的.
自从VS 2003以来,这一直在运行,但是在最新的VS 2015中,这个场景的调试被打破了.一切正常,只有单个版本的程序集加载到内存中,但每当加载第二个版本时,所有Locals/Watch窗口都变空.并尝试评估QuickWatch中的任何表达式都会产生编译器异常"错误CS1704:已导入具有相同简单名称'MyAssembly'的程序集.请尝试删除其中一个引用(例如'MyAssembly.dll')或将其签名以启用并排侧".
以下是VS2013和VS2015附加调试器的相同应用程序的屏幕截图(加载两个程序集时):
所以这使得VS 2015的调试几乎不可能.
由于最初这是一个compliler错误(据我所知,在VS 2015调试器的封面下使用)互联网搜索不是很有用.这是我能找到的唯一与调试器问题相关的链接: Visual Studio Debugger无法检查变量.与我的情况不同的是,在内存中有两个程序集是一个错误,而在我的情况下,这是一个意图.
所以现在我在思考我的选择.
那么可能有人可以提出更多想法吗?Thnaks.