使用Assembly.Load(byte[], byte[])加载dll在Visual Studio 2013和2015之间存在不同行为

3
我以为我已经抛弃了VS2013,因为我开始使用VS2015 RTM。但是我注意到一个非常奇怪的问题,可能是设置问题或只是一个bug。
我实现了自己的NUnit测试运行程序,以便能够测试应用程序(称为Revit)的附加组件(类库)。这个测试运行程序作为Revit中独立的附加组件存在。它使用Assembly.Load(byte[], byte[])加载测试程序集,并让我运行测试。在VS2013中,我可以调试我的测试类,但是使用完全相同的dll(测试运行程序、测试和被测试的dll),但是在VS2015下调试测试时无法进行。VS2015认为它是外部代码并跳过它。在使用VS2013和VS2015时,我都可以看到pdbs正确加载。
有人见过这样的情况吗?在VS2015中是否有防止我调试测试或其他设置?如果我检查堆栈跟踪,我可以看到VS认为它调用了外部代码,即调用我的测试方法。
提前感谢!

你也在加载 PDB byte[] 吗? - leppie
是的,它在VS2013中的表现就像预期的那样。 - Erik83
1个回答

3

好的,我解决了!

在VS的调试设置中,托管兼容模式的默认值是关闭的(当然)。 将其打开即可解决问题!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接