2009-07-31 83 views
73

向解決方案目錄中的程序集添加引用時,是否有任何方式相對地添加它,以便在檢入和退出存儲庫時正確引用項目中的項目?Visual Studio:相對程序集引用路徑

+11

如果它在UI上不能正常工作,請記住,您可以直接手動編輯.proj文件並將路徑更改爲相對路徑。一旦你改變了它,它就會保持你放置它的方式。 – 2009-07-31 05:05:49

+1

在Visual Studio 2010中,參考路徑默認存儲爲相對路徑,所以如果發生這種情況,您還有其他錯誤。就我而言,這是我從版本控制中忽略了忽略的dll,所以我可以編譯解決方案,但我的同事不能。 – 2013-04-16 15:34:29

回答

101

展開Pavel Minaev的原始評論 - Visual Studio的GUI支持相對引用,假定您的.sln是相對引用的根。因此,如果您有解決方案C:\myProj\myProj.sln,則您在C:\myProj\的子文件夾中添加的任何參考都會自動添加爲相關參考。

在一個單獨的目錄中添加一個相對引用,如C:/myReferences/myDLL.dll,請執行下列操作:

  1. 通過右鍵單擊Solution Explorer中的項目,選擇添加引用添加在Visual Studio GUI的參考。 ..
  2. 查找* .csproj的這個地方存在參考,並在文本編輯器
  3. 編輯< HintPath>打開它等於

    <HintPath>..\..\myReferences\myDLL.dll</HintPath>

這現在引用C:\myReferences\myDLL.dll

希望這會有所幫助。

7

是的,只需在你的解決方案中創建一個目錄如lib /,然後將你的dll添加到文件系統中的該目錄並將其添加到項目中(Add-> Existing Item-> etc)。然後根據您的項目添加參考。

我已經在svn和cvs下做過幾次了。

+4

您不需要將dll添加到項目本身,只需添加對其的引用即可。最好的做法是將整個'lib'目錄添加到源代碼管理中。以http://code.google.com/p/projectpilot/source/browse/#svn/trunk爲例 – 2009-07-31 05:02:18

+1

你說得對。我檢查了一箇舊的項目,並且目錄或dll都沒有被添加到項目本身,只是添加到存儲庫中。那麼這個參考文獻就是關於這個項目的。對於那個很抱歉。 – Freddy 2009-07-31 05:08:10

2

可能最簡單的方法是簡單地將引用添加到程序集中,然後(手動)在相應的Visual Studio項目文件(擴展名.csproj)中修改引用的文本表示,使其成爲相對的。

我在VS 2005中做了很多次,沒有任何問題。

0

如前所述,您可以手動編輯項目的.csproj文件以便手動應用它。

我還注意到Visual Studio 2013嘗試將相對路徑應用於引用hintpath,可能是因爲嘗試使項目文件更加便攜。