2012-01-26 124 views
2

我們正在使用Visual Studio 2010,並在解決方案中有一堆項目。每當我們一個參考的外部DLL添加到項目中,該引用通常被添加爲相對路徑,如:默認情況下使VS2010項目文件提示路徑爲絕對路徑?

<Reference Include="SomeReference">
<HintPath> ..\..\..\MyLibCatalog\SomeRef.dll</HintPath>
</Reference>

如果我們現在顯示爲代表的節點屬性引用的DLL(從Solution Explorer),它會顯示爲例如:
C:\MyLibCatalog\SomeRef.dll

在項目文件(然而右鍵單擊該項目節點,選擇「編輯項目文件」),真正的參考仍然是相對的(如..\..\..\MyLibCatalog\SomeRef.dll)。

我們構建我們的系統並在外部系統中運行一些測試,爲了正常工作,我們需要這些引用是絕對的,而不是相對的。目前,這意味着每次添加像這樣的參考時都要手動編輯項目文件。除了是一個煩惱,這個「修復」很容易忘記。

因此,我的問題:是否有任何方法使VS2010添加HintPath作爲從一開始的絕對路徑?

回答

0

解決方案構建環境VS插件http://workspacewhiz.com/OtherAddins.html可能是您的解決方案。沒有嘗試VS 2010,但提供了源代碼,我想他們可以很容易地根據您的需求量身定製。

解決方案構建環境加載項具有一個特殊符號,用於將相對路徑擴展爲絕對形式。通過在行首插入感嘆號來觸發路徑的絕對擴展。

RELPATH = C:\ Windows \ System32下.. ABSPATH = $(RELPATH)#!C:\ Windows下

解決方案構建環境加載執行這些轉變,在解決方案的開放時間,並開始前每個構建,相應地重置構建的環境變量。

0

也許這是你使用相對路徑的方式。如果您將依賴關係放在源代碼樹的Dependencies文件夾中(就像我們一樣),那麼它們就位於您的修訂控制系統中,並且您可以在任何系統上籤出您的代碼,並且始終確保二進制代碼與代碼匹配。

如果使用絕對路徑,那麼您可能難以重現構建,因爲您如何知道構建/測試哪些二進制文件?

我建議去相對路徑。