1. 程式人生 > >未能載入檔案或程式集“DAL”或其他的某一個依賴項,系統找不到指定的檔案

未能載入檔案或程式集“DAL”或其他的某一個依賴項,系統找不到指定的檔案

    針對這個問題我在敲VB.NET機房收費系統的時候總共出現了兩次,第一次是在使用反射+抽象工廠的時候出現的,第二次是在使用VS2012自帶的打包工具生成可執行檔案執行exe檔案的時候出現的。具體看下圖:

    第一次:

 

    第二次:

        

    再說這兩個問題的解決方案前首先必須明白一個道理我們所建立的任何解決方案,所有的層之間都是有直接或者間接的關聯關係的。就拿我做的機房收費系統的關係如圖所示:


    我們通過U層(windows窗體,肯定要是啟動項)的"生成"可以得到如下圖所示,

       

    通過圖片可以看出U層根本沒有生成D層的dll(

動態連結庫檔案),原因就是依次引用關係的限制:U層為啟動項,他和Façade  BLLAbstractFactory  以及IDAL為依次引用關係,而DALU層不是依次引用關係。假設我們在IDALDAL的引用關係換一下,改成IDAL引用DAL,這樣當我們在執行U層的時候debug檔案都都會有我們所有層的dll檔案。關於為什麼需要dll檔案不知道的可以去查查百科,這裡就不再贅述。

    首先明確一點,U層為啟動項,當我們啟動解決方案的時候在“UI層”----“編譯”---“生成輸出路徑”(如下圖所示)的資料夾中必須有我們所有要使用的專案。否則就會出現找不到程式集的錯誤。

    

    通過上面的講解,知道了專案與專案之間的關係,我們就可以知道那個專案和那個專案之間不是依次的引用關係,而為了解決我們啟動解決方案出現錯誤的問題我們將缺少的專案的

dll檔案複製到啟動項的“編譯”----“生成輸出路徑”的該資料夾下。這樣解決了找不到程式集的錯誤。

    下面具體說一下針對我出現的問題的解決方案:

    可以肯定的是D層沒有和U層有依次引用的關係,我們需要手動新增dll檔案。

    第一次的:複製D層的dll檔案 U層的debug資料夾下。 

    第二次的:在我新增UI主輸出的同時新增 DAL.dll如圖所示: