c# - Visual Studio 调试旧版本的代码 - 仅用于实例化类
问题描述
我正在 Visual Studio 中调试一个解决方案,并且调试器没有为每个类构建最新的代码。该解决方案包括 3 个项目:
- 项目 1) 一个 Windows 服务 - 设置为作为控制台应用程序进行调试
- 项目 2) 一个实际的控制台应用程序(它基本上用作类库,需要在某个时候更改为一个)
- 项目 3) 一个单元测试项目。
项目 1,windows 服务,使用石英调度程序,并在它的一些工作中实例化项目 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 到底做了什么导致了这种情况。
推荐阅读
- c - 将输入从标准输入读取到指针数组中,直到 EOF,但没有输出?
- css - Bootstrap 4 Navbar 不会回滚
- angular - 如何从返回 Observable 的通用 http get 方法获取数据
在角度 2 版本 0.8 - flutter - 计算 dart 和 Flutter 程序的时空复杂度
- android - 使用健身房后,Crashlytics 在 android 上失败。(获取“Crashlytics 已将提交二进制文件移到 Crashlytics.framework 目录之外...”错误)
- arrays - 将单元格转换为 4D 数组
- php - 结合 2 个地点请求以获取邮政编码
- python - 如何在html中读取csv文件?
- python - 无论我尝试什么,我的代码都会显示此错误,当我单击链接时,它显示有 404
- vue.js - 如何为对象列表构建 vuex 存储并根据 ID 单独映射到它们