除了.NET 3.5之外,不能在c#项目中命中断点

Fan*_*Fox 6 .net c# nunit breakpoints

我刚刚将以前在VS2008中运行的解决方案升级.NET 3.5到VS2015上运行.NET 4.6.

有关该项目的一些信息

  1. 该解决方案只有一个项目,它Unit Test Project只是创建'AVTest.dll`,我们将其加载到NUnit中以对某些硬件执行某些功能测试.
  2. 我们不直接运行它,我们通过启动外部程序调试事件打开NUnit.exe .我们加载由c#build生成的.dll,NUnit能够运行一系列测试.通过以这种方式运行NUnit,我们过去能够在单元测试中调试例程.
  3. NUnit版本是2.5.10,它使用.NET 2.0(鉴于我们运行并打破.NET 3.5似乎这可能不是这样).我也升级了o最新稳定版的NUnit(2.6.4 .NET 3.5),没有任何变化.
  4. 我们没有启动项目 - 一切都通过NUnit运行.

所有东西都构建并正确运行但是在尝试设置断点时出现以下错误:

断点当前不会被击中.没有为此文档加载任何符号.

当我切换回.NET 3.5时,我能够在代码中设置断点.我能做到这一点的事实让我觉得我缺少一些关于.NET版本的简单,因为我不太熟悉c#.

我知道这个问题,并尝试了问题本身和答案第一页的所有内容.

关于如何检查没有加载符号的原因是否有任何进展?

一个新的发展

当我附加到已经运行的Nunit测试时,我能够正常调试.我不确定它为什么在运行后(通过启动外部程序)或者为什么在3.5而不是4.6中工作,但它可以被调试...

Fan*_*Fox 0

事实证明,这是 NUnit 的一个简单问题,而不是 Visual Studio 的问题。本质上,您需要将其添加到 NUnit 配置文件中的以下<runtime\>部分之前:

  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
Run Code Online (Sandbox Code Playgroud)

该文件通常位于此处:

C:\Program Files (x86)\NUnit 2.5.10\bin\net-2.0\nunit-x86.exe.config

这个答案的功劳来自这里