news 2026/6/8 7:29:52

C# 项目调试的时候进不去断点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C# 项目调试的时候进不去断点

场景:A项目引用了B.dll,改完B项目代码生成后(假设这里给B项目中的Test1类添加了一个字段),调试A项目的时候,报错:未在Test1中找到字段:xxx

在编辑界面不报错,运行调试才报错,这种问题一般是dll的引用路径问题。

就是你代码里写的看起来使用了新的字段:

但是编译的时候实际编译使用的dll中还是之前没有这个字段的dll。

但是我们也已经重新生成了,为什么不能引起dll更新呢?

实际上dll会跟随重新生成而更新,只不过A项目引用B.dll的时候会从好几个目录下找B.dll,所以即使B.dll已经更新了,但是A项目并没有引用到新的B.dll,而是在某个地方被原来的B.dll截胡了。

这个时候可以观察你的代码编译的时候实际上引用的是哪个目录下的B.dll:

在vs 的输出框查找对应的dll名称:

或者使用代码查看,其中typeof()中的类就是B项目中的一个类:

知道引用的是哪里的B.dll后,把那里的B.dll删除,再重新测试就好了。或者文件资源管理器那里搜索B.dll,先全部删除,再重新生成。

C#项目寻找dll的过程是有顺序的,这一点可以搜索相关字眼学习。

另外,我遇到的情况是:

我的A项目生成方式也是dll,然后输出路径假设是Path-A,启动方式是外部程序。

B项目生成路径是Path-Dll,A项目引用那里现实的B.dll路径是Path-Dll。

由于Path-A路径下存在了一个B.dll,我每次重新生成B生成在了Path-Dll下,导致编译的时候没有引用到真正修改过的B.dll。把Path-A下的B.dll删除后重新测试就好了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/7 5:51:24

LLaMA-Factory:高效微调百款大模型的工具

LLaMA-Factory:让百款大模型微调变得触手可及 在当前大模型技术飞速演进的背景下,如何快速、低成本地定制专属模型,已成为研究者与开发者共同关注的核心命题。面对动辄数十GB显存、复杂依赖和陡峭学习曲线的传统微调流程,一个真正…

作者头像 李华
网站建设 2026/6/7 17:59:44

LobeChat能否用于构建AI绘画助手?多模态支持前景展望

LobeChat 能否用于构建 AI 绘画助手?多模态支持前景展望 在生成式 AI 浪潮席卷创意产业的今天,越来越多的设计师、内容创作者甚至普通用户开始期待一种更自然、更直观的人机协作方式——用对话来“指挥”AI 完成图像创作。想象这样一个场景:你…

作者头像 李华
网站建设 2026/6/7 10:57:46

PaddlePaddle高性能推理引擎Paddle Inference安装与测试

Paddle Inference:从安装到实战的高性能推理引擎深度实践 在AI模型日益复杂、部署场景愈发多样的今天,一个常见的现实是:模型训练得再好,如果推理慢、资源占用高、部署困难,依然无法真正落地。尤其是在金融交易实时风控…

作者头像 李华
网站建设 2026/6/6 14:21:16

第二章(2.5):微控制器8051的硬件结构---时钟、复位和MCU工作方式

时钟电路与时序微控制器的时钟为CPU和各个功能模块的协调工作提供同步信号和基本时序信号。时钟电路经典8051MCU必须通过外接晶振、电容,与内部时钟电路构成时钟发生器来产生MCU工作需要的信号,如下图所示。晶振频率范围一般为1.2MHz~12MHz,常…

作者头像 李华
网站建设 2026/6/6 14:19:45

Spring Bean 的生命周期详解

Spring Bean 的生命周期是指从 Bean 被 Spring 容器创建、初始化、使用到销毁的整个过程。理解这一过程,能帮助你精准控制 Bean 的行为(如自定义初始化逻辑、资源释放),也是解决 Spring 容器相关问题的核心基础。 Spring Bean 的生命周期可分为核心流程和扩展流程,核心流…

作者头像 李华