【问题标题】:Loading dll using Assembly.Load(byte[], byte[]) different behaviour between Visual Studio 2013 and 2015使用 Assembly.Load(byte[], byte[]) 加载 dll 在 Visual Studio 2013 和 2015 之间的不同行为
【发布时间】:2015-08-18 08:47:06
【问题描述】:

虽然我在开始使用 VS2015 RTM 时离开了 VS2013。但是我注意到一个非常奇怪的事情,可能是设置问题或只是一个错误。

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

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

提前致谢!

【问题讨论】:

  • 你也在加载 PDB byte[] 吗?
  • 是的,它的工作方式与 VS2013 中的预期一样。

标签: c# visual-studio .net-assembly assembly-resolution


【解决方案1】:

好的,我解决了!

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 2021-11-05
    • 2015-08-12
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    相关资源
    最近更新 更多