Welche Bedeutung hat das ProjectTypeGuids-Tag in der Visual Studio-Projektdatei?


99

Welche Bedeutung hat das ProjectTypeGuids-Tag in einem Visual Studio-Projekt? Als ich eine WPF-Anwendung erstellt habe, werden hier zwei GUIDs angezeigt.

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

Stellen diese Anwendungen vom Typ WPF und Windows dar?

Was soll ich in diese ProjectTypeGuids-Tags einfügen, wenn ich einen eigenen Projekttyp (.myproj) mit .xaml- und .cs-Dateien erstelle? Sollte ich auch das ProjectType-Tag ausfüllen müssen?

Es wäre auch besser, wenn jemand die Tags ProjectType und ProjectTypeGuids * unterscheidet.

Antworten:


139
  • {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ist die GUID für das C # -Projekt
  • {60dc8134-eba5-43b8-bcc9-bb4bc16c2548} ist für ein Projekt im WPF-Geschmackspaket

Sie ProjectTypeGuidssind also für ein WPF C # -Projekt.

Sie konnten die Bedeutung der verschiedenen GUID im Register sehen:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Projects für ProjectTypeGuids
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Packages für Pakete Referenz von einem Projekt

Einige ProjectTypeGuids

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

1
Okay, wenn ich jetzt mein eigenes Projekt (.myproj) mit .xaml-Dateien erstellen möchte, sollte ich die Projektdatei mit dieser GUID versehen?
Sudarsanyes

Benötigen Sie wirklich einen neuen Projekttyp, wenn es sich um ein Projekt mit .xaml- und .cs-Dateien handelt? Wenn Sie dies tun, müssen Sie wahrscheinlich einen anderen Guid verwenden.
Julien Hoarau

1
Vielen Dank, dies hat mir beim Zusammenführen von ASP.NET MVC in ein vorhandenes ASP.NET WebForms-Projekt geholfen. Ich wollte, dass das Inhaltsmenü an den neuen Ordnern Controller, Ansichten usw. hängt.
Rick Glos

1
@Meligy Eine Liste der GUIDs finden Sie in dieser Antwort .
Athari

6
Warum zum Teufel sollten sie dafür eine GUID verwenden? Könnten sie nicht einfach "Windows (C #)" verwenden, um ein C # -Projekt anstelle einer stumpfen GUID zu kennzeichnen, die Sie ausgerechnet in der Windows-Registrierung nachschlagen müssen?
Sandy Chapman

20

Von MZ-Tools: Liste bekannter Projekttypen Guids :

Jedes Visual Studio-Projekt hat einen Projekttyp (Windows-Projekt, Smart Device-Projekt, Website-Projekt usw.) und in einigen Fällen mehr als einen Typ (Untertypen oder Varianten).

Jeder Projekttyp wird durch eine eindeutige Guid identifiziert, sodass jedes Projekt über einen oder mehrere Guids des Projekttyps verfügt.

Projekttyp Guids werden im Allgemeinen in der Projektdatei gespeichert:

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

Bei einigen speziellen Projekten (z. B. einigen Datenbankprojekten) und Projekten ohne Datei (z. B. Website-Projekte) wird der Projekttyp jedoch auch in der Lösungsdatei gespeichert:

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

Der Projekttyp Guids wird im Registrierungsschlüssel gespeichert HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\<version>\Projects. Es sind jedoch nicht alle in diesem Registrierungsschlüssel gespeicherten Guids tatsächliche Projekttypen. Einige von ihnen werden nur zum Bereitstellen von Projektvorlagen (für C # - und VB.NET-Projekte) verwendet, andere dienen anderen Zwecken. In der folgenden Tabelle sind bekannte Projekttyp-Guids aufgeführt.

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}

Ich kann diese Anleitungen im Registrierungsspeicherort unter Windows 8 nicht finden. Verschiebt MS sie an einen anderen Ort?
Vincent

@ Vincent Diese GUIDs werden vermutlich irgendwo in den ausführbaren Dateien von Visual Studio und verwandten Produkten gespeichert.
Athari

3
@ Vincent: Unter 64-Bit-Windows werden die Projekttyp-GUIDs im Registrierungsschlüssel gespeichert HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\<version>\Projects.
Andreas Bilger

Es gibt eine ziemlich gründliche Liste der verfügbaren Projekttyp-Anleitungen hier: codeproject.com/Reference/720512/…
Frederik Struck-Schøning

12

Ein Thread bei msdn wurde bereits gestartet und es wurde viel darüber diskutiert. Wenn jemand daran interessiert ist, überprüfen Sie, welche Bedeutung das ProjectTypeGuids-Tag in der Visual Studio-Projektdatei hat

ProjectTypeGuids wird von Visual Studio für die Projektaggregation verwendet. In Ihrem Beispiel haben Sie ein WPF - C # -Projekt (dargestellt durch 60dc8134-eba5-43b8-bcc9-bb4bc16c2548 ) (dargestellt durch FAE04EC0-301F-11D3-BF4B-00C04F79EFBC ).

Wenn Sie einen benutzerdefinierten Projekttyp haben, der sowohl mit .xaml als auch mit .cs arbeitet, sollten Sie versuchen, Ihre benutzerdefinierte Projektanleitung (angegeben durch die GUID Ihrer Projektfactory) wie folgt hinzuzufügen:

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


2
Es ist traurig, dass nirgendwo (einschließlich der von Ihnen freigegebenen Seiten) klar erklärt wird, warum die Projekttyp-Richtlinien benötigt werden. Jemand von MS erklärte auf der von Ihnen freigegebenen Seite, dass die Projekttyp-Richtlinien nur für die Projektaggregation bestimmt sind. Was bedeutet das? Wer weiß.
Cary
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.