warning MSB3245: 未能解析此引用。未能找到程序集“CemeteryBLL”。请检查磁盘上是否存在该程序集。 如果您的代码需要此引用,则可能出现编译错误。


多层架构,在每次重新生成解决方案的时候,老是提示:warning MSB3245: 未能解析此引用。未能找到程序集“CemeteryBLL”。请检查磁盘上是否存在该程序集。 如果您的代码需要此引用,则可能出现编译错误。

但是如果逐个生成,那就没问题。这是因为在多层架构中,项目之间有引用关系,比如三层架构,UI界面层引用了BLL业务层,BLL业务层引用了DAL数据层,如果我们全部生成解决方案,它生成的顺序如果不是先从DAL再BLL最后UI层,则会提示上面那个错误。因为如果先生成UI层,那么生成的时候,会将dll程序集全部删掉,然后再生成dll,此时已经将之前引用的dll都删除了,这时候 如果先生成UI成,那么UI的BIN 目录里面是没有BLL层的dll程序集的,所以会提示未能找到程序及xxx。总之如果项目之间有引用关系,如果生成整个解决方案的时候,提示这个错误,那么基本上是因为没有设置项目之间的依赖关系,那么VS生成的时候就会按自己的生成顺序来生成。VS的生成顺序是根据项目之间的依赖关系(不是引用关系:比如UI引用了BLL),所以这个问题的解决方案是设置项目之间的依赖关系。那么如何设置依赖关系呢?

右键解决方案->属性->项目依赖项,切换项目下拉框,逐个切换然后勾选该项目所依赖的项目,比如:选中UI层,则勾选BLL层和Model层;选中BLL层,则勾选DAL层和Model层;选中DAL层,则勾选Model层。这样设置后,VS生成顺序就会改为先生成Model,再生成DAL,然后BLL,最后UI层。这样就不会提示上面那个错误了。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 未能解析引用的程序集......因为它对不在当前目标框架“.NETFramework,Version=v4.0,Profile=Client”中的 error MSB4019: 未找到导入的项 目“D:\Microsoft.Cpp.Default.props”。请确认 声明中的路径正确,且磁盘上存在该文件。 未能加载文件或程序集“Newtonsoft.Json”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配 C# 未能找到类型或命名空间名称“XXXX”(是否缺少 using 指令或程序集引用?)解决方案 未能找到任何适合于指定的区域性或非特定区域性的资源。请确保在编译时已将“xxx.Resources.resources”正确嵌入或链接到程序集 未能加载文件或程序集“MySql.Data”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040) 未能加载文件或程序集“Antlr3.Runtime”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040) 未能加载文件或程序集Office, Version=2.2.0.0, Culture=neutral, PublicKeyToken=null或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040) 未能加载文件或程序集“System.ValueTuple, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 docker build 错误 /usr/share/dotnet/sdk/2.1.801/Microsoft.Common.CurrentVersion.targets(2106,5): warning MSB3245: Could not resolve this reference
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM