Где я могу найти ссылку на структуру файла .vcproj? - PullRequest
5 голосов
/ 23 августа 2009

Я посмотрел на MSDN, не смог его найти.
Я нашел XML-схему для файла .vcproj , и это хорошо.
Но то, что я действительно хочу, это объяснение для каждого элемента в файле vcproj, ссылка.

Непосредственный вопрос, стоящий передо мной, заключается в том, каково значение атрибута UniqueIdentifier в элементе VisualStudioProject / Files / Filter? Является ли 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 напрямую.

Может кто-нибудь предложить?

РЕДАКТИРОВАТЬ : Даже если MS не документирует это, каждый элемент имеет значение. Кто-нибудь знает список или резюме?

Ответы [ 4 ]

2 голосов
/ 24 августа 2009

Я не знаю, для чего вам это нужно, так что это может или не может иметь значение, но Visual Studio 2010 собирается отказаться от формата .vcproj. ;)

Они переходят на .vcxproj, который основан на MSBuild. (И, как таковая, также будет полностью задокументирована)

Так что может быть легче нацелиться на это, по крайней мере, в долгосрочной перспективе.

Что касается GUID, я считаю, что каждый из них должен быть уникальным. Я не думаю, что между ними есть какая-либо связь (два элемента никогда не должны иметь одинаковый GUID).

Microsoft просто любит присваивать всем свой GUID. Никогда не знаешь, когда тебе это понадобится! ;)

2 голосов
/ 23 августа 2009

Я подозреваю, что Microsoft не собирается делать формат документированным. В прошлом Microsoft заявляла, что документированные функции и форматы требуют в некоторых случаях на порядок больше работы.

Если формат не задокументирован, это потому, что Microsoft так хочет. Любая документация будет проходить через анализ и реинжиниринг.

1 голос
/ 24 августа 2009

Все элементы в .vcproj задокументированы, то есть в документации DevStudio для интерфейсов VS Automation описываются объекты / свойства проекта, а объекты / свойства проекта напрямую отображаются на элементы / атрибуты xml.

0 голосов
/ 24 августа 2009

Мне кажется, я помню проблему с действительно старой версией CMake , связанную с UniqueIdentifier, которая не была должным образом уникальной. Если я прав, проблема была исправлена, и uniqueIdentifier должен быть GUID.

Извините, я не могу больше помочь. Я перешел на cmake, и теперь мне не нужно связываться с файлами vcproj, они созданы для меня.

Вы, вероятно, можете найти больше информации на сайте CMake , так как у них есть генератор для файлов проекта vc, они, должно быть, уже выполнили всю обратную инженерию.

...