Visual Studio调试旧版本的代码-仅适用于实例化的类

时间:2019-02-08 14:03:27

标签: c# visual-studio

我正在Visual Studio中调试解决方案,并且调试器没有为每个类构建最新的代码。该解决方案包含3个项目:

  • 项目1)Windows服务-设置为作为控制台应用程序进行调试
  • 项目2)一个实际的控制台应用程序(基本上起着类库的作用,有时需要更改为一个)
  • 项目3)一个单元测试项目。

项目1(Windows服务)使用石英调度程序,并在某些工作中实例化项目2(控制台应用程序)中的类。我确定项目2中的更新代码没有被选中,因为调度程序的主要工作是发送电子邮件,它仍然可以成功完成,并且在发送任何电子邮件之前必须调用的代码中,我已经输入: / p>

 throw new exception("hello");

从项目1调试时,Visual Studio也不会遇到我在项目2的实例化类中放入的任何断点。但是,奇怪的是,如果在项目2中具有常量的静态类中输入:

public static readonly string test = textFxn();

private static string testFxn()
{
   throw new exception("hello");
}

调试器将引发异常,并击中我在类中输入的所有断点。

我尝试了什么:

  • 构建解决方案
  • 清洁+重建解决方案
  • 从解决方案中删除所有bin和obj文件夹,然后清理并重建
  • 从解决方案中删除所有bin和obj文件夹,重新启动计算机,然后清理+重建
  • 从解决方案中删除所有bin和obj文件夹,删除回收站+临时文件,然后清理+重建
  • 根据有关VS的类似帖子检查设置,因为它们没有建立最新的代码,似乎一切都已设置为建立新代码
  • 更新到最新的.NET目标版本

其他详细信息:

  • 我正在项目1下进行调试
  • Visual Studio版本为2017,Windows
  • 为项目1(Windows服务)提取断点/代码更改
  • Console.WriteLine()在项目2中似乎无法正常工作,即使在未更新代码的地方,我也可以肯定它之前已经完成
  • 我已经使用相同的设置工作了几个月,却从未遇到过这个问题
  • 我为项目2中的新代码编写了单元测试,并在项目3运行时测试了更新后的代码
  • 该项目有一个本地git文件夹,但是显然我真的不想尝试删除它

Visual Studio在哪里(或者更确切地说,在我的计算机上)从这些旧的版本中提取?我找不到任何人遇到这样的问题,因此建议值得赞赏。

1 个答案:

答案 0 :(得分:0)

我最终能够通过将Quartz版本从3.0.7降级到任意2.x版本来解决该问题。这种行为是完全怪异的,仍然不确定Quartz到底在做什么。