Ý nghĩa của thẻ ProjectTypeGuids trong tệp dự án studio trực quan là gì


99

Ý nghĩa của thẻ ProjectTypeGuids trong một dự án studio trực quan là gì ?? Khi tôi tạo một ứng dụng WPF, tôi thấy hai GUID ở đây.

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

Những điều này có đại diện cho loại ứng dụng WPF và Windows không?

Nếu tôi tạo loại dự án của riêng mình (.myproj) có tệp .xaml và .cs, tôi nên điền gì vào thẻ ProjectTypeGuids này? Tôi có nên điền thẻ ProjectType không?

Sẽ tốt hơn nếu ai đó phân biệt được các thẻ ProjectType và ProjectTypeGuids *.

Câu trả lời:


139
  • {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} là GUID cho dự án C #
  • {60dc8134-eba5-43b8-bcc9-bb4bc16c2548} dành cho dự án trong gói hương vị WPF

Vì vậy, của bạn ProjectTypeGuidslà cho một dự án WPF C #.

Bạn có thể thấy ý nghĩa của các GUID khác nhau trong sổ đăng ký:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Projects cho ProjectTypeGuids
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Packages cho các gói tham khảo của một số dự án

Một số ProjectTypeGuids

Windows (C #) {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
Windows (VB.NET) {F184B08F-C81C-45F6-A57F-5ABD9991F28F}
Windows (Visual C ++) {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}
Ứng dụng web {349C5851-65DF-11DA-9384-00065B846F21}
Trang 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}
Kiểm tra {3AC096D0-A1C2-E12C-1390-A8335801FDAB}
Thư mục Giải pháp {2150E333-8FDC-42A3-9474-1A3956D46DE8}      

1
Được rồi, bây giờ nếu tôi muốn tạo dự án của riêng mình (.myproj) với các tệp .xaml trong đó, tôi có nên tạo hương vị cho tệp dự án bằng GUID đó không ??
sudarsanyes

Bạn có thực sự cần một loại dự án mới nếu đó là một dự án có tệp .xaml và .cs không? Nếu bạn làm vậy, tôi nghĩ bạn sẽ phải sử dụng một Hướng dẫn khác.
Julien Hoarau

1
Cảm ơn điều này đã giúp tôi khi hợp nhất ASP.NET MVC vào một dự án ASP.NET WebForms hiện có và tôi muốn menu nội dung bị treo khỏi các thư mục Bộ điều khiển, Chế độ xem, v.v. mới.
Rick Glos

1
@Meligy Để biết danh sách các GUID, hãy xem câu trả lời này .
Athari

6
Tại sao họ lại sử dụng GUID cho việc này? Bạn biết đấy, không phải họ chỉ sử dụng "Windows (C #)" để biểu thị một dự án C # thay vì một số GUID khó hiểu mà bạn phải tra cứu trong sổ đăng ký Windows ở mọi nơi.
Sandy Chapman

20

Từ MZ-Tools: Danh sách các hướng dẫn loại dự án đã biết :

Mỗi dự án Visual Studio đều có một loại dự án (dự án Windows, dự án Thiết bị thông minh, dự án Trang web, v.v.) và trong một số trường hợp có nhiều hơn một loại (kiểu con hoặc kiểu).

Mỗi loại dự án được xác định bởi một Hướng dẫn duy nhất, vì vậy mỗi dự án đều có một hoặc nhiều Hướng dẫn loại dự án.

Loại dự án Các hướng dẫn thường được lưu trữ trong tệp dự án:

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

Nhưng đối với một số dự án đặc biệt (chẳng hạn như một số dự án cơ sở dữ liệu) và các dự án thiếu tệp (chẳng hạn như dự án Trang web), loại dự án cũng được lưu trữ trong tệp giải pháp:

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

Loại dự án Guids được lưu trữ trong khóa đăng ký HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\<version>\Projects. Tuy nhiên, không phải tất cả các Guid được lưu trữ trong khóa đăng ký đó đều là các loại dự án thực tế. Một số trong số chúng chỉ được sử dụng để cung cấp các mẫu dự án (cho các dự án C # và VB.NET) và một số khác có mục đích khác. Bảng sau liệt kê các Guids loại dự án đã biết.

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}

Tôi không thể tìm thấy các guids này từ vị trí đăng ký trong windows 8, MS có chuyển chúng sang nơi khác không?
Vincent

@Vincent Các GUID này được lưu trữ trong các tệp thực thi của Visual Studio và các sản phẩm liên quan ở đâu đó, tôi đoán vậy.
Athari

3
@Vincent: Trên Windows 64 bit, các GUID loại dự án được lưu trữ trong khóa đăng ký HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\<version>\Projects.
Andreas Bilger

Có một danh sách khá thấu đáo về projecttypeguids sẵn ở đây: codeproject.com/Reference/720512/...
Frederik Struck-Schøning

12

Một chủ đề tại msdn đã được bắt đầu và rất nhiều điều đã được thảo luận ở đó. Nếu ai đó muốn biết về điều này, hãy kiểm tra Ý nghĩa của thẻ ProjectTypeGuids trong tệp dự án studio trực quan

ProjectTypeGuids được Visual Studio sử dụng để tổng hợp dự án. Trong ví dụ của bạn, bạn có một dự án WPF (được đại diện bởi 60dc8134-eba5-43b8-bcc9-bb4bc16c2548 ) C # (được đại diện bởi FAE04EC0-301F-11D3-BF4B-00C04F79EFBC ).

Nếu bạn có loại dự án tùy chỉnh hoạt động với cả .xaml và .cs, bạn nên thử thêm hướng dẫn dự án tùy chỉnh của mình (được chỉ định bởi GUID nhà máy dự án của bạn) như bên dưới:

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


2
Thật đáng buồn là không nơi nào (kể cả các trang do bạn chia sẻ) giải thích rõ ràng lý do tại sao cần có các ống dẫn dự án. Một người nào đó từ MS đã giải thích trên trang mà bạn đã chia sẻ rằng projecttypeguids chỉ dành cho tổng hợp dự án. Điều đó nghĩa là gì? Ai biết.
Cary
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.