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

Loading dll using Assembly.Load(byte[], byte[]) different behaviour between Visual Studio 2013 and 2015

当我开始使用 VS2015 RTM 时,虽然我把 VS2013 抛在了后面。但是我注意到一件很奇怪的事情,可能是设置问题或只是一个错误。

我已经实施了自己的 NUnit 测试运行ner 以便能够测试应用程序(称为 Revit)的插件(class 库)。这个测试运行ner 在 Revit 中作为它自己的插件。 它反过来使用 Assembly.Load(byte[], byte[]) 加载测试程序集,并让我 运行 进行测试。现在在 VS2013 中我可以调试我的测试 classes,但是使用完全相同的 dll(都用于测试运行ner、测试和测试的 dll)但是使用 VS2015 调试我无法调试测试。 VS2015 认为它的外部代码并跳过它。 同时使用 VS2013 和 VS2015 我可以看到 pdb 已正确加载。

有人见过这样的东西吗? VS2015 中是否有阻止我调试测试或任何其他设置的设置?如果我检查堆栈跟踪,我可以看到 VS 认为它在调用我的测试方法时调用了外部代码。

提前致谢!

好的,我解决了!

VS 调试设置中托管兼容模式的默认值是关闭的(自然)。 打开这个就成功了!