繁体   English   中英

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

[英]Visual Studio Debugging an old version of code- for instantiated classes only

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

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

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

 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文件夹,但是显然我真的不想尝试删除该文件夹

视觉工作室在哪里(或者更确切地说,在我的计算机上)从这些旧的版本中提取数据? 我找不到任何人遇到这样的问题,因此建议多加赞赏。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM