2009-08-23 12 views
5

Miré en MSDN, no pude encontrarlo.
Encontré un XML Schema for the .vcproj file, lo cual es bueno.
Pero lo que realmente quiero es una explicación para cada uno de los elementos en el archivo vcproj, una referencia.¿Dónde puedo encontrar una referencia para la estructura de archivo .vcproj?

La pregunta inmediata que tengo delante es, ¿cuál es la importancia del atributo UniqueIdentifier en el elemento VisualStudioProject/Files/Filter? ¿El UUID para los archivos fuente es el mismo en todos los proyectos? ¿O es único a nivel mundial?

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

Pero después de responder esa pregunta estoy seguro de que tendré 10000 más. Entonces me gustaría una referencia, que me permita editar el .vcproj directamente.

¿Alguien puede sugerir?

EDITAR: Aunque MS no documenta que, cada elemento tiene tienen un significado. ¿Alguien sabe de una lista o un resumen?

+0

Esto mejorará en visual studio 2010 si lee el blog de su equipo encontrará indicadores de los cambios. Le preguntaría esto en los foros de MS si no obtiene una respuesta aquí. – Rick

Respuesta

2

Sospecho que Microsoft no tiene la intención de hacer que el formato sea documentado. Microsoft ha declarado en el pasado que las características y formatos documentados requieren en algunos casos un orden de magnitud más de trabajo.

Si el formato no está documentado, es porque Microsoft lo quiere así. Cualquier documentación será a través de análisis e ingeniería inversa.

+0

Puedo creer que MS no documentó el formato. Pero es XML, es legible. ¿Alguien, en algún lugar, ha realizado el análisis y la ingeniería inversa? – Cheeso

+0

Los nombres de los nodos XML se corresponden básicamente con las opciones en las páginas de administrador/propiedades de configuración para su proyecto. No debería ser una cirugía de cohete para resolverlo. –

2

No sé para qué necesita esto, por lo que esto puede o no ser relevante, pero Visual Studio 2010 se va a deshacer del formato .vcproj. ;)

Están cambiando a .vcxproj, que se basa en MSBuild. (Y como tal, también se documentará por completo)

Por lo tanto, puede ser más fácil hacerlo, al menos a largo plazo.

En cuanto a los GUID, creo que cada uno de ellos debe ser único. No creo que haya ninguna relación entre ellos (dos elementos nunca deberían tener el mismo GUID).

A Microsoft le gusta dar todo su propio GUID. ¡Nunca se sabe cuándo lo necesitarás! ;)

+0

Sé que el archivo del proyecto cambiará, pero ... No tengo el presupuesto para VS2010. Después de analizarlo más a fondo, "Archivos de origen" (la colección) tiene un GUID, "Archivos de encabezado" tiene un GUID y "Archivos de recursos" tiene un GUID, y estos parecen ser los mismos GUID en todos los proyectos. – Cheeso

0

Creo que recuerdo un problema con una versión muy antigua de CMake que hacer con UniqueIdentifier, que no eran propiamente únicos. Si estoy en lo correcto, el problema fue resuelto, y uniqueIdentifier debería ser un GUID.

Lo siento, no puedo ser más ayuda. Me mudé a cmake y ahora no tengo que meterme con los archivos vcproj, se generan para mí.

Probablemente pueda encontrar más información en el sitio CMake, ya que tienen un generador para los archivos del proyecto vc que ya deben haber hecho toda la ingeniería inversa.

+0

También QT tiene un generador (qmake) para archivos de proyecto vc a partir de archivos .pro que están definidos por QT. – metdos

1

Todos los elementos en .vcproj están documentados, por ejemplo, la documentación de DevStudio para las interfaces de automatización VS describe los objetos/propiedades del proyecto, y los objetos/propiedades del proyecto se asignan directamente a los elementos/atributos xml.

+0

Esto vale la pena mirar, gracias. – Cheeso

Cuestiones relacionadas