Apa pentingnya tag ProjectTypeGuids dalam file proyek studio visual

99

Apa pentingnya tag ProjectTypeGuids dalam proyek studio visual ?? Ketika saya membuat aplikasi WPF, saya melihat dua GUID di sini.

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

Apakah ini mewakili jenis aplikasi WPF dan Windows?

Jika saya membuat jenis proyek saya sendiri (.myproj) yang memiliki file .xaml dan .cs, apa yang harus saya isi dalam tag ProjectTypeGuids ini? Apakah saya juga perlu mengisi tag ProjectType?

Akan lebih baik jika seseorang membedakan tag ProjectType dan ProjectTypeGuids *.

sudarsanyes
sumber

Jawaban:

139
  • {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} adalah GUID untuk proyek C #
  • {60dc8134-eba5-43b8-bcc9-bb4bc16c2548} adalah untuk proyek dalam paket rasa WPF

Jadi Anda ProjectTypeGuidsuntuk proyek WPF C #.

Anda bisa melihat arti dari berbagai GUID di register:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Projects untuk ProjectTypeGuids
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Packages untuk referensi paket oleh beberapa proyek

Beberapa ProjectTypeGuids

Windows (C #) {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
Windows (VB.NET) {F184B08F-C81C-45F6-A57F-5ABD9991F28F}
Windows (Visual C ++) {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}
Aplikasi Web {349C5851-65DF-11DA-9384-00065B846F21}
Situs 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}
Uji {3AC096D0-A1C2-E12C-1390-A8335801FDAB}
Folder Solusi {2150E333-8FDC-42A3-9474-1A3956D46DE8}      
Julien Hoarau
sumber
1
Oke, sekarang jika saya ingin membuat proyek saya sendiri (.myproj) dengan file .xaml di dalamnya, haruskah saya membumbui file proyek dengan GUID itu ??
sudarsanyes
Apakah Anda benar-benar memerlukan jenis proyek baru jika itu adalah proyek dengan file .xaml dan .cs? Jika Anda melakukannya, saya pikir Anda harus menggunakan Panduan yang berbeda.
Julien Hoarau
1
Terima kasih ini membantu saya ketika menggabungkan ASP.NET MVC ke dalam proyek ASP.NET WebForms yang ada dan saya ingin menu konten menggantung di folder Controllers, Views, dll.
Rick Glos
1
@Meligy Untuk daftar GUID, lihat jawaban ini .
Athari
6
Mengapa sih mereka menggunakan GUID untuk ini? Tidak bisakah mereka, Anda tahu, menggunakan "Windows (C #)" untuk menandakan proyek C # alih-alih beberapa GUID tumpul yang harus Anda cari di registri Windows di semua tempat.
Sandy Chapman
20

Dari MZ-Tools: Daftar panduan jenis proyek yang diketahui :

Setiap proyek Visual Studio memiliki jenis proyek (proyek Windows, proyek Perangkat Cerdas, proyek Situs Web, dll.) Dan dalam beberapa kasus lebih dari satu jenis (subtipe atau rasa).

Setiap jenis proyek diidentifikasi oleh Panduan unik, sehingga setiap proyek memiliki satu atau lebih Panduan jenis proyek.

Panduan jenis proyek umumnya disimpan dalam file proyek:

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

Tetapi untuk beberapa proyek khusus (seperti beberapa proyek database) dan proyek yang tidak memiliki file (seperti proyek Situs Web), jenis proyek disimpan juga dalam file solusi:

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

Panduan jenis proyek disimpan di kunci registri HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\<version>\Projects. Namun, tidak semua Panduan yang disimpan di kunci registri tersebut adalah jenis proyek yang sebenarnya. Beberapa di antaranya hanya digunakan untuk menyediakan templat proyek (untuk proyek C # dan VB.NET) dan yang lainnya memiliki tujuan lain. Tabel berikut mencantumkan panduan jenis proyek yang diketahui.

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}
Athari
sumber
Saya tidak dapat menemukan panduan ini dari lokasi registri di bawah windows 8, apakah MS memindahkannya ke tempat lain?
Vincent
@ Vincent GUID ini disimpan dalam file yang dapat dieksekusi dari Visual Studio dan produk terkait di suatu tempat, saya kira.
Athari
3
@ Vincent: Pada Windows 64-bit, GUID jenis proyek disimpan di kunci registri HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\<version>\Projects.
Andreas Bilger
Ada daftar yang cukup lengkap dari projecttypeguids yang tersedia di sini: codeproject.com/Reference/720512/…
Frederik Struck-Schøning
12

Sebuah utas di msdn telah dimulai dan banyak hal yang telah dibahas di luar sana. Jika ada yang tertarik untuk mengetahuinya, periksa Apa pentingnya tag ProjectTypeGuids di file proyek studio visual

ProjectTypeGuids digunakan oleh Visual Studio untuk agregasi proyek. Dalam contoh Anda, Anda memiliki proyek WPF (diwakili oleh 60dc8134-eba5-43b8-bcc9-bb4bc16c2548 ) C # (diwakili oleh FAE04EC0-301F-11D3-BF4B-00C04F79EFBC ).

Jika Anda memiliki jenis proyek kustom yang bekerja dengan .xaml dan .cs Anda harus mencoba menambahkan panduan proyek kustom Anda (ditentukan oleh GUID pabrik proyek Anda) seperti di bawah ini:

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

sudarsanyes
sumber
2
Sayangnya tidak ada tempat (termasuk halaman yang Anda bagikan) menjelaskan dengan jelas mengapa projecttypeguids diperlukan. Seseorang dari MS menjelaskan di halaman yang Anda bagikan bahwa projecttypeguids hanya untuk agregasi proyek. Apa artinya? Siapa tahu.
Cary