Яке значення тегу ProjectTypeGuids у файлі проекту візуальної студії


99

Яке значення тегу ProjectTypeGuids у проекті візуальної студії ?? Коли я створив додаток WPF, тут я бачу два GUID.

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

Чи представляють вони програми WPF та Windows типу?

Якщо я створюю власний тип проекту (.myproj), у якому є файли .xaml та .cs, що я повинен заповнити у цих тегах ProjectTypeGuids? Чи потрібно мені також заповнити тег ProjectType?

Було б також краще, якби хтось розмежував теги ProjectType і ProjectTypeGuids *.

Відповіді:


139
  • {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - це GUID для проекту C #
  • {60dc8134-eba5-43b8-bcc9-bb4bc16c2548} призначений для проекту в упаковці ароматів WPF

Тож ваш проект ProjectTypeGuidsдля WPF C #.

Значення різних GUID можна побачити в реєстрі:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Projects для ProjectTypeGuids
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Packages посилання на пакунки в рамках якогось проекту

Деякі ProjectTypeGuids

Windows (C #) {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
Windows (VB.NET) {F184B08F-C81C-45F6-A57F-5ABD9991F28F}
Windows (Visual C ++) {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}
Веб-додаток {349C5851-65DF-11DA-9384-00065B846F21}
Веб-сайт {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}
Папка рішення {2150E333-8FDC-42A3-9474-1A3956D46DE8}      

1
Гаразд, тепер, якщо я хочу створити власний проект (.myproj) з файлами .xaml у ньому, чи слід смакувати файл проекту цим GUID ??
sudarsanyes

Вам дійсно потрібен новий тип проекту, якщо це проект з файлами .xaml та .cs? Якщо це зробити, я думаю, вам доведеться використовувати інший Посібник.
Жульєн Хоарау

1
Завдяки цьому мені допомогло об'єднання ASP.NET MVC у існуючий проект ASP.NET WebForms, і я хотів, щоб меню контенту було звільнено від нових папок Controllers, Views тощо.
Рік Глос

1
@Meligy Щоб отримати список GUID, дивіться цю відповідь .
Афарі

6
Чому б чорт вони використовували GUID для цього? Чи не могли вони просто використати "Windows (C #)", щоб позначити проект C #, а не тупий GUID, який потрібно шукати в реєстрі Windows усіх місць.
Сенді Чапман

20

Від MZ-Tools: Список відомих проектів Посібники типу :

Кожен проект Visual Studio має тип проекту (проект Windows, проект Smart Device, проект веб-сайту тощо), а в деяких випадках більше одного типу (підтипи або аромати).

Кожен тип проекту ідентифікується унікальним Керівництвом, тому кожен проект має один або кілька посібників типу проекту.

Посібники щодо типу проекту зазвичай зберігаються у файлі проекту:

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

Але для деяких спеціальних проектів (наприклад, деяких проектів баз даних) та проектів, у яких відсутній файл (наприклад, проектів веб-сайтів), тип проекту зберігається також у файлі рішення:

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

Посібники типу проекту зберігаються в ключі реєстру HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\<version>\Projects. Однак не всі Посібники, що зберігаються в цьому ключі реєстру, - це фактичні типи проектів. Деякі з них використовуються лише для надання шаблонів проектів (для проектів C # і VB.NET), а інші мають інші цілі. У наступній таблиці перелічені відомі проекти проекту Посібники.

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}

Я не можу знайти ці посібники з місця реєстру під Windows 8, чи MS пересуває їх в інше місце?
Вінсент

@Vincent Ці GUID-файли зберігаються у виконуваних файлах Visual Studio та пов'язаних з ними продуктів десь, напевно.
Афарі

3
@Vincent: У 64-розрядної Windows GUID типу проекту зберігаються в ключі реєстру HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\<version>\Projects.
Андреас Більгер

Тут представлений досить ретельний перелік доступних посібників для проекту
Frederik Struck-Schøning

12

Нитка в msdn вже запущена і там багато обговорювалося. Якщо комусь цікаво знати про це, перевірте, яке значення тегу ProjectTypeGuids у файлі проекту візуальної студії

ProjectTypeGuids використовується Visual Studio для об'єднання проектів. У вашому прикладі є проект WPF (представлений 60dc8134-eba5-43b8-bcc9-bb4bc16c2548 ) проект C # (представлений FAE04EC0-301F-11D3-BF4B-00C04F79EFBC ).

Якщо у вас є власний тип проекту, який працює з .xaml та .cs, ви повинні спробувати додати свою власну інструкцію щодо проекту (вказану в заводському GUID проекту), як показано нижче:

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


2
Сумно, що ніде (в тому числі на сторінках, якими ви поділилися) чітко не пояснено, для чого потрібні керівники проекту. Хтось із MS пояснив, що ви поділилися на сторінці, що типи проектів призначені лише для об'єднання проектів. Що це означає? Хто знає.
Кері
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.