Görsel stüdyo proje dosyasında ProjectTypeGuids etiketinin önemi nedir


99

Görsel stüdyo projesinde ProjectTypeGuids etiketinin önemi nedir? Bir WPF uygulaması oluşturduğumda, burada iki GUID görüyorum.

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

Bunlar WPF ve Windows tipi uygulamaları temsil ediyor mu?

.Xaml ve .cs dosyalarına sahip kendi proje türümü (.myproj) oluşturursam, bu ProjectTypeGuids etiketlerine ne doldurmalıyım? ProjectType etiketini de doldurmam gerekir mi?

Ayrıca, birinin ProjectType ve ProjectTypeGuids * etiketlerini ayırt etmesi daha iyi olur.

Yanıtlar:


139
  • {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} C # projesi için GUID
  • {60dc8134-eba5-43b8-bcc9-bb4bc16c2548} WPF lezzet paketindeki proje içindir

Yani sizin ProjectTypeGuidsbir WPF C # projesi için.

Kayıtta farklı GUID'in anlamını görebilirsiniz:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Projects ProjectTypeGuids için
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Packages bazı projelere göre paket referansı için

Bazı ProjectTypeGuids

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

1
Tamam, şimdi .xaml dosyalarıyla kendi projemi (.myproj) oluşturmak istersem, proje dosyasını o GUID ile tatlandırmalı mıyım?
sudarsanyes

.Xaml ve .cs dosyaları içeren bir projeyse, gerçekten yeni bir proje türüne ihtiyacınız var mı? Eğer yaparsanız, farklı bir Kılavuz kullanmanız gerekeceğini düşünüyorum.
Julien Hoarau

1
Teşekkürler, bu ASP.NET MVC'yi mevcut bir ASP.NET WebForms projesiyle birleştirirken bana yardımcı oldu ve içerik menüsünün yeni Denetleyiciler, Görünümler vb. Klasörleri kapatmasını istedim.
Rick Glos

1
@Meligy GUID'lerin listesi için bu yanıta bakın .
Athari

6
Neden bunun için bir GUID kullanıyorlar? Sadece, bilirsiniz, her yerin Windows kayıt defterinde aramanız gereken geniş bir GUID yerine bir C # projesini belirtmek için "Windows (C #)" kullanamazlar mı?
Sandy Chapman

20

Gönderen MZ-Tools: Bilinen proje tipi GUID'lerini listesi :

Her Visual Studio projesinin bir proje türü (Windows projesi, Akıllı Cihaz projesi, Web Sitesi projesi vb.) Ve bazı durumlarda birden fazla türü (alt türler veya tatlar) vardır.

Her proje türü benzersiz bir Kılavuz ile tanımlanır, bu nedenle her projenin bir veya daha fazla proje türü Rehberi vardır.

Proje türü Kılavuzlar genellikle proje dosyasında saklanır:

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

Ancak bazı özel projeler (bazı veritabanı projeleri gibi) ve dosyası olmayan projeler (Web Sitesi projeleri gibi) için proje türü ayrıca çözüm dosyasında saklanır:

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

Proje türü Kılavuzlar kayıt defteri anahtarında saklanır HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\<version>\Projects. Ancak, bu kayıt defteri anahtarında depolanan Kılavuzların tümü gerçek proje türleri değildir. Bazıları yalnızca proje şablonları sağlamak için kullanılır (C # ve VB.NET projeleri için) ve diğerlerinin başka amaçları vardır. Aşağıdaki tablo bilinen proje tipi Kılavuzları listeler.

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}

Bu kılavuzları Windows 8 altındaki kayıt konumundan bulamıyorum, MS bunları başka bir yere taşır mı?
Vincent

@Vincent Bu GUID'ler, sanırım Visual Studio'nun çalıştırılabilir dosyalarında ve ilgili ürünlerde saklanıyor.
Athari

3
@Vincent: 64 bit Windows'ta, proje tipi GUID'ler kayıt defteri anahtarında saklanır HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\<version>\Projects.
Andreas Bilger


12

Msdn'de bir iş parçacığı başlatıldı ve orada çok şey tartışıldı. Bu konuda bilgi almak isteyen varsa , görsel stüdyo proje dosyasındaki ProjectTypeGuids etiketinin önemi nedir kontrol edin.

ProjectTypeGuids, proje toplama için Visual Studio tarafından kullanılır. Örneğinizde bir WPF ( 60dc8134-eba5-43b8-bcc9-bb4bc16c2548 ile temsil edilen) C # projeniz var ( FAE04EC0-301F-11D3-BF4B-00C04F79EFBC ile temsil edilmektedir ).

Hem .xaml hem de .cs ile çalışan özel bir proje türünüz varsa, özel proje kılavuzunuzu (proje fabrikası GUID'niz tarafından belirtilen) aşağıdaki gibi eklemeyi denemelisiniz:

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


2
Ne yazık ki hiçbir yerde (sizin tarafınızdan paylaşılan sayfalar dahil) proje tipi kılavuzların neden gerekli olduğunu net bir şekilde açıklamıyor. MS'den biri paylaştığınız sayfada proje tipi kılavuzların yalnızca proje birleştirme için olduğunu açıkladı. Bu ne anlama geliyor? Kim bilir.
Cary
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.