2009-05-27 24 views
4

我最近加入了一家公司,這些公司多年來一直爲他們開發不同質量的工作。保持DLLs最新的方法

已創建的項目依賴於其他項目的輸出。 但是,不是以常規方式創建依賴關係並維護代碼,而是將DLL從一個地方複製到另一個地方,並從那裏引用。

是否有一種簡單的方法可以將父文件夾下的所有DLL更新爲最新版本(通過時間戳),覆蓋整個文件夾範圍?

因此,在總結的過程:

  1. 編譯所有的項目和解決方案 所有的根文件夾。
  2. 查找並更新輸出文件的所有其他副本 。
  3. 重新編譯所有內容並找出 是什麼突破。
  4. 更新源代碼並更新 參考。

問題的步驟是2

(我很清楚,這可能打破的東西)

我使用Visual Studio 2005和C#創建DLL文件,但是我想最好更新文件而不是代碼。

回答

2

一種更簡單的方法是創建一個包含所有你需要的項目的解決方案,修改它們之間的引用使用項目引用,都指向更改項目,使它們的輸出文件夾到同一個目錄,然後安裝項目引用「複製本地」設置爲false。

然後,所有你需要做的是建立解決方案(無論是在VS或通過MSBuild的命令行)。

構建結果將是,擁有所有你在它需要的文件,單個文件夾,和每一個項目總是有最新的引用。

8

Microsoft最佳實踐建議是在任何可能的情況下引用項目而不是DLL。

項目到項目引用和文件引用

文件引用是直接引用 到組件;您可以使用 添加引用 對話框的瀏覽選項卡來創建它們。項目到項目 引用是對包含程序集的項目 的引用;使用「添加 引用」對話框的「項目」選項卡創建它們 。

的項目到項目 引用的優點是,它會在 構建系統項目之間的 依賴,所以如果它已經 最後一次引用改變依賴項目 將建項目 建成。文件引用不 創建構建依賴,所以它是 可能建立的參考 項目沒有建設相關 項目,以及參考可以成爲 過時(即該項目可 參考先前建立的版本 該項目)。這可能導致 在bin目錄中需要多個版本的單個DLL,其中 是不可能的。當發生衝突 時,您將看到一條消息,如 警告: 項目「項目」中的依賴項'文件'無法複製到 運行目錄,因爲它會覆蓋引用'文件'。 。

你應該避免同一解決方案中添加文件 引用到另一個 項目的產出, 因爲這樣做可能會導致編譯 錯誤。相反,請使用「添加引用」對話框的「項目」選項卡 到 在同一解決方案中創建項目間項目引用 。通過允許 更好地管理您在項目中創建的類 庫,這使得 團隊的開發更容易。 欲瞭解更多信息,請參閱 故障斷開的引用並 如何創建和刪除項目 依賴。

here

+1

雖然我意識到最好的做法是參考項目。我如何從我處於最佳實踐場景的情況中獲得? – 2009-05-27 11:00:52

+0

Thx爲downvote! – 2009-05-27 11:01:19

+0

就像這真的會讓我想花我的時間來幫助你! – 2009-05-27 11:01:41

5

有時候項目到項目的引用不起作用。例如項目的構建時間,或者希望多個項目依賴於特定的引用構建,或者如果測試引用的項目已完成,並且您不想再次進行測試。

如果你有一個持續集成系統和版本控制,那麼另一種是內置的DLL檢查到版本控制的CI構建的一部分。然後將dll(例如svn中的外部參考)引用到依賴項目中,這應該意味着您的所有dll都保持最新狀態。

2

你能添加一個生成後步驟所包括的,但並非真正的,包括項目轉儲DLL文件預先安排的位置?從那裏,您可以在依賴項目中添加預構建步驟以從所述位置獲取新的DLL。絕對不是最佳實踐,但它應該完成工作。