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层。这样就不会提示上面那个错误了。

时间: 2024-08-10 23:13:48

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

【错误】未能找到类型或命名空间名称XXXX和未能解析引用的程序

“未能找到类型或命名空间名称XXXX”,以往遇到这种情况第一时间想到就是没有引用需要的dll.但今天我反复检查了好几次,还是没有解决问题.我注意到除了错误信息,还有几个警告信息“未能解析引用的程序集XXXXXXVersion=1.0.0.0, Culture=neutral, processorArchitecture=MSIL”,因为它对不在当前目标框架“.NETFramework,Version=v4.0,Profile=Client”中的“System.Web, Version=4.0.0

未能解析引用的程序集……因为它对不在当前目标框架……

今天特别郁闷了,所有都快测试完毕了,突然出现了这个问题,卸载了重新加载,尝试了很多方法都没有成功.还好功夫不负有心人,问题终于解决了,难者不会,会者不难啊,记录下载,以备查询.         警告:未能解析引用的程序集“AIPAIProject.Common, Version=1.0.0.0, Culture=neutral,”,因为它对不在当前目标框架 “.NETFramework,Version=v4.0,Profile=Client”中的“System.Data.OracleClient

二次开发BarTender打印机时,未能解析主引用“Seagull.BarTender.Print, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86”

错误提示: 严重性 代码 说明 项目 文件 行 禁止显示状态警告 未能解析主引用“Seagull.BarTender.Print, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86”,因为它对框架程序集“System.IdentityModel.Selectors, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”有间接依赖关系,而在当前目标框

未能在全局命名空间中找到类型或命名空间名称“Wuqi”

下载了AspNetPager控件用以进行分页操作,在项目中放入控件后,运行报错:未能在全局命名空间中找到类型或命名空间名称“Wuqi” . 解决办法:在项目下拉框“引用“中添加AspNetPager引用即可 未能在全局命名空间中找到类型或命名空间名称"Wuqi"

未能解析此远程名称:'nuget.org' 的解决方法

今天用Nuget下一个程序包时,发现Nuget挂了: 未能解析此远程名称:'nuget.org' . 浏览器打开  http://nuget.org  失败. 使用cmd命令 输入nslookup nuget.org 解析失败 使用Google的DNS 输入 nslookup nuget.org 8.8.8.8 解析成功 如: 服务器: google-public-dns-a.google.com Address: 8.8.8.8 非权威应答: 名称: nuget.org Address: 15

未能解析目标框架“.NETFramework,Version=v4.0”的 mscorlib的解决方法

本人菜鸟一个,在编码过程中遇到的问题记录下以备忘,高手别笑.最近在做一个项目,公司的VS版本是2010,家里的VS版本是2012.把公司的项目用2012打开后再用2010打开就出现 未能解析目标框架“.NETFramework,Version=v4.0”的 mscorlib的提示,软件的界面无法显示.网上找了些解决方法,有的可能要重装VS什么的,在麻烦了. 我用VS 2010打开后先清理项目再生成项目,重新打开没有上面的提示了,界面也可以显示.

vs2012 Nuget错误:“未能解析此远程名称api.nuget.org”

今天在使用vs2012的Nuget功能向新建MVC项目中添加bootstrap时出现一个错误:“未能解析此远程名称api.nuget.org”: 网上查阅资料得知:nuget.org使用的godaddy的域名服务器,而godaddy的域名服务器在国内被大规模屏蔽,所以在国内的dns服务器自然查询不到该域名,也自然出现了未能解析此远程名称的问题. 解决方案: 通过命令:nslookup nuget.org 可以获取nuget.org的真实Ip地址:191.236.146.247. 将该Ip地址添加

vs未能解析此远程名称: 'api.nuget.org'

知道了DNS地址我们就可以来修改了,点击电脑右下角的连接图标,选择“打开网络和共享中心”,当然也可以在控制面板中“网络和Internet”进入“打开网络和共享中心”:   进入“网络和共享中心”后,我们再点击“本地连接”进入“本地连接  状态”对话框:   在“本地连接  状态”对话框中点击“属性”选项,弹出本地连接属性对话框:   这里我们选中本地连接属性对话框中的“Internet 协议版本4 (ICP/iPv4)”,双击后者选择下方的属性,之后即可进入“Internet 协议版本4 (IC

[C#错误]未找到类型或命名空间名称" " (是否缺少 using 指令或程序集引用?)

现象:编译项目时提示未找到类型或命名空间名称" " (是否缺少 using 指令或程序集引用?) 解决方法:如果是未找到类型,检查是否引用了类型所在的命名空间,使用using指令. 如果是未找到命名空间,那么检查是否引用了程序集,如果确认引用了程序集,那么检查程序集版本和项目是否一致,例如,你的项目是.net 4.0,而你的程序集是.net 3.5下编译的,或者你的引用项目与被引用项目的.NET framework版本不一样,例如一个是.NET 4.0 另一个是.NET 4.0 Cli