¿Cuál es la importancia de la etiqueta ProjectTypeGuids en el archivo de proyecto de estudio visual?

¿Cuál es el significado de la etiqueta ProjectTypeGuids en un proyecto de estudio visual? Cuando creé una aplicación WPF, veo dos GUID aquí.

{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}** 

¿Representa estos tipos de aplicaciones de WPF y Windows?

Si creo mi propio tipo de proyecto (.myproj) que tiene archivos .xaml y .cs, ¿qué debo completar con estas tags ProjectTypeGuids? ¿Debo también tener que completar la etiqueta ProjectType?

También sería mejor si alguien diferencia las tags ProjectType y ProjectTypeGuids *.

  • {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} es el GUID para el proyecto C #
  • {60dc8134-eba5-43b8-bcc9-bb4bc16c2548} es para el proyecto en el paquete de sabor WPF

Entonces, su ProjectTypeGuids es para un proyecto de WPF C #.

Puedes ver el significado de los diferentes GUID en el registro:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Projects para ProjectTypeGuids
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Packages para referencia de paquetes por algún proyecto

Algunos ProjectTypeGuids

 Windows (C #) {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
 Windows (VB.NET) {F184B08F-C81C-45F6-A57F-5ABD9991F28F}
 Windows (Visual C ++) {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}
 Aplicación web {349C5851-65DF-11DA-9384-00065B846F21}
 Sitio web {E24C65DC-7377-472B-9ABA-BC803B73C61A}
 WCF {3D9AD99F-2412-4246-B90B-4EAA41C64699}
 WPF {60DC8134-EBA5-43B8-BCC9-BB4BC16C2548}
 XNA (Windows) {6D335F3A-9D43-41b4-9D22-F6F17C4BE596}
 XNA (XBox) {2DF5C3F4-5A5F-47a9-8E94-23B4456F55E2}
 XNA (Zune) {D399B71A-8929-442a-A9AC-8BEC78BB2433}
 Silverlight {A1591282-1198-4647-A2B1-27E5FF5F6F3B}
 ASP.NET MVC {F85E285D-A4E0-4152-9332-AB1D724D3325}
 ASP.NET MVC 4 {E3E379DF-F4C6-4180-9B81-6769533ABE47}
 Prueba {3AC096D0-A1C2-E12C-1390-A8335801FDAB}
 Carpeta de solución {2150E333-8FDC-42A3-9474-1A3956D46DE8}      

De MZ-Tools: Lista de guías de tipo de proyecto conocido :

Cada proyecto de Visual Studio tiene un tipo de proyecto (proyecto de Windows, proyecto de dispositivo inteligente, proyecto de sitio web, etc.) y en algunos casos más de un tipo (subtipos o sabores).

Cada tipo de proyecto está identificado por un Guid único, por lo que cada proyecto tiene uno o más tipos de proyectos Guids.

Las guías de tipo de proyecto se almacenan generalmente en el archivo de proyecto:

  {A860303F-1F3F-4691-B57E-529FC101A107};{F184B08F-C81C-45F6-A57F-5ABD9991F28F} ...  

Pero para algunos proyectos especiales (como algunos proyectos de bases de datos) y proyectos que carecen de un archivo (como proyectos de sitios web), el tipo de proyecto también se almacena en el archivo de la solución:

 Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SqlServerProject1", "SqlServerProject1.vbproj", "{BE5F0BE0-93CD-4FCE-A853-9096A442DF1B}" EndProject 

Las guías de tipo de proyecto se almacenan en la clave de registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\\Projects . Sin embargo, no todos los Guids almacenados en esa clave de registro son tipos de proyectos reales. Algunos de ellos se usan solo para proporcionar plantillas de proyectos (para proyectos C # y VB.NET) y otros tienen otros propósitos. La siguiente tabla enumera las guías de tipo de proyecto conocidas.

 Project Type Description Project Type Guid Windows (C#) {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} Windows (VB.NET) {F184B08F-C81C-45F6-A57F-5ABD9991F28F} Windows (Visual C++) {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942} Web Application {349C5851-65DF-11DA-9384-00065B846F21} Web Site {E24C65DC-7377-472B-9ABA-BC803B73C61A} Distributed System {F135691A-BF7E-435D-8960-F99683D2D49C} Windows Communication Foundation (WCF) {3D9AD99F-2412-4246-B90B-4EAA41C64699} Windows Presentation Foundation (WPF) {60DC8134-EBA5-43B8-BCC9-BB4BC16C2548} Visual Database Tools {C252FEB5-A946-4202-B1D4-9916A0590387} Database {A9ACE9BB-CECE-4E62-9AA4-C7E7C5BD2124} Database (other project types) {4F174C21-8C12-11D0-8340-0000F80270F8} Test {3AC096D0-A1C2-E12C-1390-A8335801FDAB} Legacy (2003) Smart Device (C#) {20D4826A-C6FA-45DB-90F4-C717570B9F32} Legacy (2003) Smart Device (VB.NET) {CB4CE8C6-1BDB-4DC7-A4D3-65A1999772F8} Smart Device (C#) {4D628B5B-2FBC-4AA6-8C16-197242AEB884} Smart Device (VB.NET) {68B1623D-7FB9-47D8-8664-7ECEA3297D4F} Workflow (C#) {14822709-B5A1-4724-98CA-57A101D1B079} Workflow (VB.NET) {D59BE175-2ED0-4C54-BE3D-CDAA9F3214C8} Deployment Merge Module {06A35CCD-C46D-44D5-987B-CF40FF872267} Deployment Cab {3EA9E505-35AC-4774-B492-AD1749C4943A} Deployment Setup {978C614F-708E-4E1A-B201-565925725DBA} Deployment Smart Device Cab {AB322303-2255-48EF-A496-5904EB18DA55} Visual Studio Tools for Apps (VSTA) {A860303F-1F3F-4691-B57E-529FC101A107} Visual Studio Tools for Office (VSTO) {BAA0C2D2-18E2-41B9-852F-F413020CAA33} SharePoint Workflow {F8810EC1-6754-47FC-A15F-DFABD2E3FA90} XNA (Windows) {6D335F3A-9D43-41b4-9D22-F6F17C4BE596} XNA (XBox) {2DF5C3F4-5A5F-47a9-8E94-23B4456F55E2} XNA (Zune) {D399B71A-8929-442a-A9AC-8BEC78BB2433} SharePoint (VB.NET) {EC05E597-79D4-47f3-ADA0-324C4F7C7484} SharePoint (C#) {593B0543-81F6-4436-BA1E-4747859CAAE2} Silverlight {A1591282-1198-4647-A2B1-27E5FF5F6F3B} ASP.NET MVC 1.0 {603C0E0B-DB56-11DC-BE95-000D561079B0} ASP.NET MVC 2.0 {F85E285D-A4E0-4152-9332-AB1D724D3325} ASP.NET MVC 3.0 {E53F8FEA-EAE0-44A6-8774-FFD645390401} ASP.NET MVC 4.0 {E3E379DF-F4C6-4180-9B81-6769533ABE47} 

Ya se ha iniciado un hilo en msdn y se ha discutido mucho por ahí. Si alguien está interesado en saber esto, consulte ¿Cuál es la importancia de la etiqueta ProjectTypeGuids en el archivo de proyecto de estudio visual?

ProjectTypeGuids es utilizado por Visual Studio para la agregación de proyectos. En su ejemplo, tiene un proyecto WPF (representado por 60dc8134-eba5-43b8-bcc9-bb4bc16c2548 ) C # (representado por FAE04EC0-301F-11D3-BF4B-00C04F79EFBC ).

Si tiene un tipo de proyecto personalizado que trabaje tanto con .xaml como con .cs, debe intentar agregar su guid de proyecto personalizado (especificado por su GUID de fábrica del proyecto) como se muestra a continuación:

{YourProjectFactoryClassGUID};{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}