2011-07-12 40 views
1

是否可以使用Visual Studio屬性表來指定項目文件所在的目錄?Visual C++屬性表可以引用項目位置嗎?

我有一個解決方案文件,其中包含一個公共目錄內的幾個項目。例如,如果我想更改該目錄名稱,則需要更改解決方案中每個項目的項目路徑。如果我可以使用屬性表來指定該頂級目錄的名稱,那麼如果需要更改目錄名稱,我可以更新它。


屬性表中可以定義(除其他事項外)包含目錄,這將是您的解決方案,它使用此屬性頁的任何項目中使用。這使得在同一時間跨多個項目更改包含目錄變得微不足道。您也可以添加可供所有項目使用的宏。

本質上,我想知道是否有某種方式使用屬性表(或其他)來添加指定一些宏的解決方案,這將允許項目的路徑是一個變量。

想象一下,我有一個項目的版本是v1.0,它是幾個解決方案的一部分。我想升級到v1.1,所以我使用屬性表宏來重新定義頭文件的Include目錄和輸出庫文件。

C:\myproject\somelibrary\v1.0\some_project.proj
C:\myproject\somelibrary\v1.1\some_project.proj

$(LibraryPath)可從V1.0在我的屬性表更改爲V1.1。

這讓我的生活更輕鬆,如果我有很多解決方案都參考相同的屬性表。但是,在每個解決方案中,我還需要刪除舊的v1.0項目文件並添加新的v1.1項目文件。

有沒有一種方法來定義一個宏或類似的東西,這將有可能在一個單一的位置改變項目的幾個解決方案的路徑? Property Sheets可能無法工作,因爲它們是在項目級而不是解決方案級別添加的,所以我正在尋找類似的東西。

+0

您的問題有點不清楚。您是指正在生成的項目的輸出,或者您需要設置參考路徑? – Ajay

+0

我的意思是參考的路徑。換句話說,如果我的解決方案中有幾個項目,我希望能夠在屬性表中設置項目的路徑,這樣我就可以通過更新單個項目在解決方案中的不同項目之間快速切換變量在屬性表中。 – Cruiser

+0

恐怕,但你的問題仍然是不可理解的 – Ajay

回答

0

你不能用屬性表來做到這一點。 .sln文件引用.vcproj(或其他項目文件類型)文件。項目文件依次引用屬性表。因此,Visual Studio將不得不以某種方式查找屬性表,然後返回並加載項目文件。

一個更簡單的解決方案就是在文本編輯器中打開.sln,並使用find/replace來更改項目文件的路徑。你甚至可以通過使用File-> Open-> File ...來使用Visual Studio本身,然後單擊「Open With ...」按鈕,而不是常規的打開按鈕。我不確定Visual Studio 2010,但在2005和2008年,您必須單擊打開按鈕上的向下箭頭才能進入「打開方式...」按鈕。然後您可以選擇XML編輯器或源代碼編輯器。完成更改後,保存並關閉.sln文件,然後按常規方式打開它。

+0

我可能會將其標記爲答案,因爲我沒有找到任何其他方式來完成我想要的操作,除了在.sln中進行文本搜索和替換,或者通過手動添加/從GUI中刪除。 我會花點時間看看是否有人有更好的做事方式。 – Cruiser

0

我會做的是創建一個腳本(可以做C++,python與os和基於文件的任務友好),編輯解決方案文件並替換路徑的一部分。

也可以使用環境變量,使其更容易...

相關問題