閱讀該篇 MSDN 文章 - 管理專案中的參考 後,才發現原來參考 dll 的方式是錯誤的,一直以來都是用[檔案參考],應該使用[專案對專案參考] 才對
參考管理員
- 紅框:專案對專案參考
- 橘框:檔案參考
專案對專案參考是包含組件的專案參考;您可以使用 [專案] 索引標籤建立專案對專案參考。 當給定專案路徑時,Visual Studio 即可找出組件。檔案參考 MSDN 說明
當您有會產生組件的專案時,您應該參考該專案,而不要使用檔案參考 (請參閱下文)。 專案對專案參考的優點是它會在組建系統中建立專案之間的相依性。 如果自上次建置的參考專案已變更,則將會建立相依專案。 檔案參考不會建立組建相依性,因此可以建置參考專案而不需建置相依專案,且參考可能會遭到淘汰。 (也就是專案可以參考先前建置的專案版本。) 這會導致在 bin 目錄中需要單一 DLL 的數個版本,但這不可能達成。 發生這個衝突時,您會看到類似 警告: 無法將專案 'project' 中的相依性 'file' 複製至執行目錄,因為它會覆寫參考 'file' 的訊息
如果某個專案的 .NET Framework 目標版本為 4.5 版,而其他專案的目標版本為第 2 版、第 3 版、3.5 版或 4.0 版,則會建立檔案參考而非專案對專案參考。
檔案參考是 Visual Studio 專案內容外部之組件的直接參考;您可以使用 [參考管理員] 的 [瀏覽] 索引標籤建立檔案參考。 當您只有組件或元件,而且不需要會建立檔案參考做為輸出的專案時,請使用檔案參考。把參考方式改為 [專案對專案參考],就跳出錯誤訊息,看到關鍵字 - 循環相依,終於知道犯了甚麼錯誤,>.<
循環相依 MSDN 說明
錯誤訊息中參考的專案,必須相依於選取的專案才能建置;選取的專案要相依於所參考的專案才能建置。必須解析循環參考,才能建置這兩個專案。把 Code 重新整理後,在模擬一次就 OK
通常是在一個部署專案包含第二個部署專案的專案輸出,而第二個專案又包含第一個專案的輸出時,才會發生這種錯誤。
沒有留言:
張貼留言