c++visual-studiovcproj

Where can I find a reference for the .vcproj file structure?


I looked on MSDN, couldn't find it.
I found an XML Schema for the .vcproj file, which is nice.
But what I really want is an explanation for each of the elements in the vcproj file, a reference.

The immediate question in front of me is, what is the significance of the UniqueIdentifier attribute in the element VisualStudioProject/Files/Filter ? Is the UUID for source files the same across projects? Or is it unique globally?

<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>

But after I answer that one question I am sure I will have 10000 more. So I'd like a reference, that allows me to edit the .vcproj directly.

Can anyone suggest?

EDIT: Even if MS does not document it, each element does have a meaning. Does anyone know of a list or a summary?


Solution

  • I suspect Microsoft is not intending to make the format a documented one. Microsoft has stated in the past that documented features and formats require in some cases an order of magnitude more work.

    If the format is not documented, it's because Microsoft wants it that way. Any documentation will be through analysis and reverse-engineering.