多層架構,在每次重新生成解決方案的時候,老是提示: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層。這樣就不會提示上面那個錯誤了。