2009-08-23 134 views
5

我看着MSDN,找不到它。
我發現一個XML Schema for the .vcproj file,這很好。
但我真正想要的是vcproj文件中每個元素的解釋,一個引用。我在哪裏可以找到.vcproj文件結構的參考?

在我面前的直接問題是,元素VisualStudioProject/Files/Filter中的UniqueIdentifier屬性的意義是什麼?各個項目的源文件的UUID是否相同?還是全球獨一無二?

<VisualStudioProject> 
    ... 
    <Files> 
     <Filter 
     Name="Source Files" 
     Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" 
     UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" 
     > 
     <File ... /> 
      ... 
     </Filter> 
     <Filter 
     Name="Header Files" 
     Filter="h;hpp;hxx;hm;inl;inc;xsd" 
     UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" 
     > 
     <File ... /> 
      ... 
     </Filter> 
     <Filter 
     Name="Resource Files" 
     Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" 
     UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" 
     > 
     <File ... /> 
      ... 
     </Filter> 
    </Files> 
    <Globals> 
    </Globals> 
</VisualStudioProject> 

但是,在我回答這個問題後,我相信我會有10000多個。所以我想要一個引用,它允許我直接編輯.vcproj。

任何人都可以建議嗎?

EDIT:即使MS沒有記錄它,每個元件確實具有的含義。有誰知道列表或摘要?

+0

如果你閱讀他們的團隊博客,你會發現指向這些變化的指針,這將在Visual Studio 2010中變得更好。如果你在這裏沒有得到答案,我會在MS論壇上提問。 – Rick 2009-08-24 00:36:58

回答

2

我懷疑微軟不打算將這種格式記錄下來。微軟過去曾表示,記錄的功能和格式在某些情況下需要更多的工作量。

如果格式沒有記錄,那是因爲微軟想這樣。任何文件都將通過分析和逆向工程。

+0

我可以相信MS沒有記錄格式。但它是XML,它是可讀的。任何人都可以在任何地方完成分析和逆向工程? – Cheeso 2009-08-23 21:25:11

+0

XML節點名稱幾乎對應於項目的配置管理器/屬性頁面中的選項。解決這個問題不應該是火箭手術。 – 2009-08-23 21:39:36

2

我不知道你需要什麼,所以這可能會或可能不相關,但Visual Studio 2010將拋棄.vcproj格式。 ;)

他們切換到.vcxproj,它基於MSBuild。 (因此,也將完全記錄)

因此,至少從長遠來看,目標可能會更容易。

至於GUID的,我相信他們每個人都必須是唯一的。我不認爲他們之間有任何關係(兩個元素不應該有相同的GUID)。

微軟只是喜歡把自己的GUID給一切。你永遠不知道你什麼時候需要它! ;)

+0

我知道項目文件會改變,但..我沒有VS2010的預算。 進一步查看之後,「源文件」(集合)有一個GUID,「頭文件」有一個GUID,「資源文件」有一個GUID,並且這些GUID跨項目顯示爲相同的GUID。 – Cheeso 2009-08-23 21:59:29

0

我想我記得CMake的一個真正舊版本與UniqueIdentifier有關的問題,他們並不正確。如果我是正確的,問題就解決了,uniqueIdentifier應該是一個GUID。

對不起,我不能更多的幫助。我轉移到cmake,現在我不必亂用vcproj文件,它們是爲我生成的。

您或許可以在CMake網站上找到更多信息,因爲他們有一個vc項目文件生成器,他們必須完成所有逆向工程。

+0

QT還有一個生成器(qmake),用於從QT定義的.pro文件創建vc項目文件。 – metdos 2010-05-10 13:19:32

1

.vcproj中的所有元素都有文檔記載,即VS自動化接口的DevStudio文檔描述項目對象/屬性,項目對象/屬性直接映射到xml元素/屬性。

+0

這值得一看,謝謝。 – Cheeso 2009-08-24 00:28:57

相關問題