Qual è il significato del tag ProjectTypeGuids nel file di progetto di Visual Studio


99

Qual è il significato del tag ProjectTypeGuids in un progetto di studio visivo? Quando ho creato un'applicazione WPF, vedo due GUID qui.

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

Rappresentano il tipo di applicazioni WPF e Windows?

Se creo il mio tipo di progetto (.myproj) con file .xaml e .cs, cosa devo inserire in questi tag ProjectTypeGuids? Dovrei anche dover riempire il tag ProjectType?

Sarebbe anche meglio se qualcuno differenziasse i tag ProjectType e ProjectTypeGuids *.

Risposte:


139
  • {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} è il GUID per il progetto C #
  • {60dc8134-eba5-43b8-bcc9-bb4bc16c2548} è per il progetto nel pacchetto di versioni WPF

Quindi il tuo ProjectTypeGuidsè per un progetto WPF C #.

Puoi vedere il significato del diverso GUID nel registro:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Projects per ProjectTypeGuids
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Packages per riferimento ai pacchetti da parte di qualche progetto

Alcuni ProjectTypeGuids

Windows (C #) {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
Windows (VB.NET) {F184B08F-C81C-45F6-A57F-5ABD9991F28F}
Windows (Visual C ++) {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}
Applicazione web {349C5851-65DF-11DA-9384-00065B846F21}
Sito 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}
Prova {3AC096D0-A1C2-E12C-1390-A8335801FDAB}
Cartella della soluzione {2150E333-8FDC-42A3-9474-1A3956D46DE8}      

1
Ok, ora se voglio creare il mio progetto (.myproj) con i file .xaml, dovrei aromatizzare il file di progetto con quel GUID ??
sudarsanyes

Hai davvero bisogno di un nuovo tipo di progetto se si tratta di un progetto con file .xaml e .cs? Se lo fai, penso che dovrai usare un Guid diverso.
Julien Hoarau

1
Grazie, questo mi ha aiutato durante l'unione di ASP.NET MVC in un progetto ASP.NET WebForms esistente e volevo che il menu del contenuto fosse sospeso dalle nuove cartelle Controller, Visualizzazioni, ecc.
Rick Glos

1
@Meligy Per l'elenco dei GUID, vedere questa risposta .
Athari

6
Perché diamine dovrebbero usare un GUID per questo? Non potrebbero semplicemente, sai, usare "Windows (C #)" per indicare un progetto C # invece di qualche ottuso GUID che devi cercare nel registro di Windows di tutti i posti.
Sandy Chapman

20

Da MZ-Tools: Elenco dei tipi di progetti noti Guide :

Ogni progetto di Visual Studio ha un tipo di progetto (progetto Windows, progetto Smart Device, progetto sito Web, ecc.) E in alcuni casi più di un tipo (sottotipi o versioni).

Ogni tipo di progetto è identificato da una Guid univoca, quindi ogni progetto ha una o più Guide di tipo progetto.

Le guide del tipo di progetto sono generalmente memorizzate nel file di progetto:

<PropertyGroup>
    <ProjectTypeGuids>{A860303F-1F3F-4691-B57E-529FC101A107};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    ...
</PropertyGroup> 

Ma per alcuni progetti speciali (come alcuni progetti di database) e progetti privi di un file (come i progetti del sito Web), il tipo di progetto viene memorizzato anche nel file della soluzione:

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

Le guide del tipo di progetto vengono archiviate nella chiave di registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\<version>\Projects. Tuttavia, non tutte le guide memorizzate in quella chiave di registro sono tipi di progetto effettivi. Alcuni di essi vengono utilizzati solo per fornire modelli di progetto (per progetti C # e VB.NET) e altri hanno altri scopi. La tabella seguente elenca le guide dei tipi di progetto conosciuti.

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}

Non riesco a trovare queste guide dalla posizione del registro in Windows 8, MS le sposta in un altro posto?
Vincent

@ Vincent Questi GUID sono archiviati nei file eseguibili di Visual Studio e dei prodotti correlati da qualche parte, immagino.
Athari

3
@ Vincent: su Windows a 64 bit, i GUID del tipo di progetto vengono memorizzati nella chiave di registro HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\<version>\Projects.
Andreas Bilger

C'è un elenco piuttosto completo dei tipi di
Frederik Struck-Schøning

12

Un thread su msdn è già stato avviato e molto è stato discusso là fuori. Se qualcuno è interessato a saperne di più, controlla Qual è il significato del tag ProjectTypeGuids nel file di progetto di Visual Studio

ProjectTypeGuids viene utilizzato da Visual Studio per l'aggregazione dei progetti. Nel tuo esempio hai un progetto C # WPF (rappresentato da 60dc8134-eba5-43b8-bcc9-bb4bc16c2548 ) (rappresentato da FAE04EC0-301F-11D3-BF4B-00C04F79EFBC ).

Se hai un tipo di progetto personalizzato che funziona sia con .xaml che con .cs dovresti provare ad aggiungere il tuo guid progetto personalizzato (specificato dal GUID della fabbrica del progetto) come di seguito:

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


2
È triste che da nessuna parte (comprese le pagine condivise da te) spieghi chiaramente perché sono necessari i tipi di progetto. Qualcuno di MS ha spiegato nella pagina che hai condiviso che i projecttypeguid sono solo per l'aggregazione del progetto. Cosa significa? Chissà.
Cary
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.