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

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

技术分享

 

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