VS编译生成解决方案失败,但是检查源码完全正常的奇异现象
VS编译生成解决方案失败,但是检查源码完全正常的奇异现象问题说明:A.DLL 文件内定义了接口I.Do(int a);方法,发布给宿主H程序使用,编译后没有问题运行正常。然后修改了I.Do方法,假设为:I.Do(int a, int b); 再次发布A.DLL到宿主程序H,在宿主程序内修改了相关的调用Do的方法,再次编译H程序,提示I.Do方法参数错误,仔细查看代码完全没有问题,相关调用的Do方法也绝对没有问题。
虽然代码没有任何问题,使用“生成解决方案”或“重新生成解决方式”编译无法通过,按F5或Ctrl+F5启用高度模式偶尔能正常运行,再次编译又出现错误。以前发生过这种情况,大致问题是VS使用了DLL缓存文件(副本),清除解决方案或者手工删除相关DLL文件就能解决。但是今天发生的编译错误截然不同,无论使用以前使用过的方法都没有效果。
直觉认为是程序问题而钻了牛角尖,花了半天时候在找原因.
最后找到问题根源:解决方案内引用了X.DLL, 而X.DLL引用了A.DLL,每次编译的时候会从X.DLL所在目录复制X.DLL及所有它的引用相关DLL(包括A.DLL)到Debug目录,因此每次编译后VS加载的是旧DLL内I.Do(int a)方法!
PS: 其实使用手工删除相关DLL文件能解决问题的,由于X.DLL是服务端的文件,压根没想到此问题是服务端关联引起的。
解决方案:
1. 若要引用其它项目的DLL,必须将DLL文件复制到Debug目录,引用debug目录下的DLL.
2. 删除与本程序相关联的DLL(第3方组件除外),重新编译.
我们解决程序错误常用几种方法:
1. 经验,曾经遇到过此问题的解决方案。
2. 排除法,若N个替在问题无法确定时适合使用。
3. 网上找解决方案。
4. 检查源码,逐步解决,这种作法最苦逼。
:
参考文档:
CSFrameworkV6旗舰版|新建业务模块 (VS Project项目)|C/S开发框架
CSFramework.CodeGeneratorV6.0|将项目模块(Project)添加到VS解决方案|C/S开发框架
CSFramework.CodeGeneratorV6.0|将窗体(Form)源码加入到VS解决方案|C/S开发框架
代码生成器:直连模式+WebApi生成的源码集成到VS解决方案|C/S开发框架
C/S快速开发框架旗舰版CSFrameworkV6.0 | VS开发环境配置|C/S开发框架
VS2022不能打开窗体设计器解决方案(无法设计窗体)|C/S开发框架
VS2022+.NET 部署DevExpress V23.2|C/S开发框架
DevExpress组件版本下载、安装与VS开发环境 | Winform C/S框架|C/S开发框架
VS2022 .NET7手动更改组件类型(TextEdit改为ComboBoxEdit)|C/S开发框架
CSFrameworkV6开发框架升级VS2022+.NET8+DevExpress24.1操作步骤|C/S开发框架
VS2022编译解决方案为什么会生成2级Debug子目录|C/S开发框架
WinFormsApp窗体应用快速开发框架(.NET7+EFCore+VS2022)
VS2022 工具箱没有可用的控件解决方案
VS2022解决方案部署DevExpress组件(DevExpress Project Settings)|C/S开发框架
塑胶板材行业ERP系统软件开发平台(VS2022+C#+Winform)
ERP/MES系统通用快速开发平台(VS2022+C#+EF)
CSFrameworkV6旗舰版|新建业务模块 (VS Project项目)|C/S开发框架
CSFramework.CodeGeneratorV6.0|将项目模块(Project)添加到VS解决方案|C/S开发框架
CSFramework.CodeGeneratorV6.0|将窗体(Form)源码加入到VS解决方案|C/S开发框架
代码生成器:直连模式+WebApi生成的源码集成到VS解决方案|C/S开发框架
C/S快速开发框架旗舰版CSFrameworkV6.0 | VS开发环境配置|C/S开发框架
VS2022不能打开窗体设计器解决方案(无法设计窗体)|C/S开发框架
VS2022+.NET 部署DevExpress V23.2|C/S开发框架
DevExpress组件版本下载、安装与VS开发环境 | Winform C/S框架|C/S开发框架
VS2022 .NET7手动更改组件类型(TextEdit改为ComboBoxEdit)|C/S开发框架
CSFrameworkV6开发框架升级VS2022+.NET8+DevExpress24.1操作步骤|C/S开发框架
VS2022编译解决方案为什么会生成2级Debug子目录|C/S开发框架
WinFormsApp窗体应用快速开发框架(.NET7+EFCore+VS2022)
VS2022 工具箱没有可用的控件解决方案
VS2022解决方案部署DevExpress组件(DevExpress Project Settings)|C/S开发框架
塑胶板材行业ERP系统软件开发平台(VS2022+C#+Winform)
ERP/MES系统通用快速开发平台(VS2022+C#+EF)
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
