2010-06-15 81 views

回答

25

這不是什麼選擇。如果你有兩個項目的解決方案,那麼沒有使用項目引用沒有意義。如果你的解決方案沒有這個項目,那麼你使用程序集引用。

所以真正的問題可能應該是:我是否同時創建了兩個項目的解決方案?是的,只要項目仍處於調試階段並且需要修復錯誤。

+16

當你有幾個解決方案時,它會更復雜。使用項目引用可以中斷包含引用項目而不是引用項目的其他解決方案的構建。 Visual Studio然後靜默解析(!)項目引用到bin/Debug中的dll文件引用,這是意外的,如果解決方案在Release中編譯,則會中斷。 – 2012-06-06 12:40:12

+0

您可以通過首先將父項目添加到您的解決方案來解決此問題,並且不要添加任何沒有父項目(引用)項目的項目 – 2013-03-01 18:10:38

+1

只需添加 - 如果您在項目A上使用dll引用時單擊「查找所有引用「對於來自項目B的方法,來自項目A的方法參考根本不會出現=配方錯誤 – BornToCode 2014-08-21 12:47:16

2

那麼,當您在調試和發佈模式下構建和測試時,項目引用都很有用。如果您直接添加一個DLL,那麼您將被鎖定到構建的那個特定的DLL中。項目參考允許這是一個構建時間的決定。

+0

這是正確的,你在說什麼。同時它在使用.NET程序集時不會導致問題。它們包含稍後在目標機器上編譯的IL代碼。一個非常好的決定時間。 – 2013-07-22 07:46:31

16

如果你只有DLL,那麼你堅持與DLL參考(顯然)。

如果您有源代碼,那麼通常使用項目引用會更好。可能有些情況下,你有一個永遠不會改變的實用程序庫,但是如果你需要一個錯誤修復的機會,那麼有一個項目引用將使調試更容易。

-3

相對於您的項目架構,您應該始終堅持問題域內的項目。您應該使用GAC,如果這適用於您的環境。

+5

GAC與Visual Studio項目文件中的項目引用vs dll引用有什麼關係? – Abel 2014-09-16 18:34:33

0

摘要 - 工程引用的項目由VS DLL

參考由項目

  • 代碼是可見
  • 查找所有引用例如一類(因爲代碼是可見的)
  • 更好地進行測試(所有)
  • 更好的代碼重新設計(影響)由DLL

參考

  • 代碼隱藏
  • 分離框架和項目(用於提供框架)
  • 更快的編譯(因爲DLL已經編譯)