2012-06-29 437 views
21

我在Visual Studio 2010中一個簡單的解決方案,其中包含一些靜態庫,幾個DLL和可執行文件。項目引用和項目依賴關係有什麼區別?

一些圖書館依賴彼此(例如DLL需要生成DLL本身之前建立了兩個靜態庫項目),似乎有兩種方式來實現這一目標:

1)如果我右擊在解決方案,我可以選擇「項目依賴......」,並設置生成順序

2)我可以用鼠標右鍵單擊DLL項目,並選擇屬性 - >框架和引用,然後添加一個新的參考。

之間有什麼#1和#2有什麼區別?在Visual Studio 2010中的兩個項目之間表達構建依賴關係的更好方法是什麼?

+2

我建議使用項目引用添加到項目中,讓Visual Studio找出構建順序。通常不需要手動編輯構建順序。 – FrankE

+0

是的,我的同事在這裏告訴我同樣的事情。我只是好奇的區別 – Emiliano

回答

21

一個「項目引用定義」和「項目依賴定義」之間的唯一區別是定義輸出組件納入/排除到/從主項目鏈接命令的元數據。微軟希望你開始使用「框架和參考」對話框,並停止使用「項目相關性」對話框(現在,「項目相關性」對話框仍然存在,將來可能會被刪除)。

這裏有一個博客條目,談到這一點,和其他「與VS2010項目設置的變化」,由Visual Studio的開發者之一:

http://blogs.msdn.com/b/vcblog/archive/2010/02/16/project-settings-changes-with-vs2010.aspx

+2

我偶爾會遇到在VS2013中的錯誤,其中一個項目的依賴不會創建構建依賴。這似乎是在發佈但不包含調試版本中排除的項目的情況。它不一致和加重,但手動添加構建依賴項修復它。 – Wheezil

+0

對於Visual Studio 2015年,引用在屬性表不再,但現在低於Project Explorer中的樹項目。 – MicroVirus