2012-08-02 176 views
4

所以這個問題很簡單:我的項目引用程序集X但不是Z.但是程序集X執行引用程序集Z.程序集Z更新有點頻繁,所以每當我構建我的項目,我也想得到Z的最新版本。.NET部署dll項目不使用,但引用的dll需要

到目前爲止,我想出了3個選項:

  1. 參考裝配Z.這有獲得新版本,一直的優勢。但它確實污染了那些並不嚴格要求的內容。
  2. 添加一個後期構建事件,從中更新它們的位置複製所需的DLL。我認爲這是相當好的,直到我需要多個不同的DLL,這將使腳本相當冗長和繁瑣的維護。
  3. 將組件Z添加爲資源並將副本設置爲輸出爲true。這個我可能會更喜歡,除了當我將DLL添加到項目時,Visual Studio實際上將(當時)當前版本複製到項目中,並且沒有鏈接到原始源。因此,當程序集更新時,這在我的項目中沒有任何反映。除非我將這種方法與選項2結合起來,但是我可能只是單獨使用選項2。

那麼,我錯過了什麼,或者這些是我唯一的選擇嗎?

回答

5

我會選擇1.我認爲您的項目引用它所依賴的所有內容是完全合理的,即使這些依賴關係有時可能是間接的。

這也似乎是最簡單的選項我 - 和一個與代碼依賴Visual Studio的觀點適合於您的應用程序需要......所以任何的Visual Studio與那些依賴不應該只是自然流出,而比你在每個階段都要考慮這個問題。

編輯:作爲替代選項,你有沒有考慮過使用NuGet?這樣,你最好只表達你的項目的NuGet依賴內的X依賴,但它會「知道」,它依賴於Z.我相信應該都只是工作...你應該能夠做到這一點即使這些是內部項目,因爲您可以設置自己的NuGet源而不是公共存儲庫。

+0

謝謝,是的,我最喜歡選項1。儘管NuGet會是一個有趣的選擇。我從來沒有在它上面部署過任何東西,但我認爲它會做出一個有趣的測試案例。 – bobblez 2012-08-02 06:44:08