2012-07-24 139 views
2

我相信我完全理解兩者之間的區別。什麼時候應該使用一個引用,什麼時候應該使用一個ProjectReference

A 參考只是指向某個使用的程序集(不論是指定完整路徑還是在GAC中查找)。

A ProjectReferences假設引用的項目與引用項目駐留在相同的VS解決方案中,並使用項目GUID來確定應該引用哪個項目。

有一個ProjectReference的好處是,Visual Studio可以檢測到依賴關係,並在必要時重建它們(如果我引用項目A並且它沒有構建,它將被重建)。此外,將引用所引用的項目輸出(基於當前的活動配置等)。

這促使我們努力去爭取「所有項目參考」方法。

我的問題是這導致解決方案文件包含許多依賴項目。如果依賴關係本身具有引用程序集,則會將其添加爲ProjectReferences,強制這些程序由相同的.sln文件構建,而不是獨立的。

我的問題是 - 什麼情況下應使用ProjectReferences沒有任何問題?在什麼情況下應該絕對避免? (如果有的話)

回答

3

如果您正在開發引用項目的代碼,那麼這是使用項目引用的理想選擇。但是,如果您購買了第三方控件(例如Telerik RadControls),那麼您可能只需引用該DLL(參考)。

如果您不需要編譯它,請更改版本號等。只需使用參考。

此外,它不會每次編譯項目引用。只有當它看到代碼已經改變或者其他一些導致它觸發的事情(比如完全重建或者它自己的引用中的某些改變)時。

3

如果您正在對這些引用進行修改並需要重新編譯,最好保留項目引用,但是如果完成了依賴關係開發,請將其編譯爲發行版,將它們註冊到GAC並使用Assembly References來加快編譯時間!

+0

參考項目也在開發中。問題是我應該把它們全部保留爲項目引用或不。這導致項目與解決方案文件之間的耦合。我有什麼其他的替代方案,而不是這個... – 2012-07-24 14:53:04

+0

你可能會建立一個編譯系統(例如CC.NET),它可以編譯項目或識別目錄中的變化,將DLL複製到已知位置通過這兩種解決方案並將其用作參考。但是,使用項目引用恕我直言,這有點複雜,也更容易。 – Chris 2012-07-24 14:57:53

相關問題