Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are the project GUIDs in a Visual Studio solution file used for?

I have multiple projects in a single Visual Studio (2008) solution.
I just discovered that each of these projects uses a same GUID, so in the solution file it looks like this:

Project("{FAE04EC0-F103-D311-BF4B-00C04FCBFE97}") = "Pro1", "Pro1\Pro1.csproj", "{...}" Project("{FAE04EC0-F103-D311-BF4B-00C04FCBFE97}") = "Pro2", "Pro2\Pro2.csproj", "{...}" 

Do I have to change these GUIDs so they're unique and what are they used for?

like image 347
Marc Avatar asked Feb 24 '10 15:02

Marc


People also ask

What is project GUID in Visual Studio?

Project GUIDs Uniquely Identify Projects Visual Studio uses project GUIDs to identify different project files and their dependencies in a solution file, as well as for references between projects inside a single solution file. For this to work, it needs all project GUIDs to be unique inside a solution file.

What .sln file contains?

The . sln file contains text-based information the environment uses to find and load the name-value parameters for the persisted data and the project VSPackages it references. When a user opens a solution, the environment cycles through the preSolution , Project , and postSolution information in the .

What is the use of Csproj file?

csproj file tells dotnet how to build the ASP.NET application. It's one of the most important files in an ASP.NET project. An ASP.NET project can depend on third-party libraries developed by other developers. Usually, these libraries are installed as Nuget packages using Nuget package manager.


2 Answers

Project persistence block in a solution file has the following format:

Project("{project type GUID}") = "<Project name>", "<project file location>",      "{<Unique project GUID>}" EndProject 

So it's expected that first GUID is non-unique, it uniquely identifies Visual Studio package that handles this type of projects.

The GUID you posted is interesting - it looks like mangled C# project GUID, which is FAE04EC0-301F-11D3-BF4B-00C04F79EFBC. Did you change it yourself or is it a posting issue (e.g. you are using right-to-left locale such as Hebrew or Arabic).

like image 141
Oleg Tkachenko Avatar answered Sep 28 '22 19:09

Oleg Tkachenko


The first GUID is the project type. Project type GUIDs can be found here:

http://www.codeproject.com/Reference/720512/List-of-Visual-Studio-Project-Type-GUIDs

From the link:


There isn't an easy way to change the type of a project in Visual Studio project once it is created; for example changing a C# Class Library into a Portable Class Library (PCL). Knowing these GUIDs will allow you to edit project files like .csproj and .vbproj to easily change a project type in cases where Visual Studio will not allow using the GUI.

By description/project type:

+------------------------------------------------+----------------------------------------+ |                  Project Type                  |                 GUID         +------------------------------------------------+----------------------------------------+ | .NET Core                                      | {9A19103F-16F7-4668-BE54-9A1E7A4F7556} | | ASP.NET 5                                      | {8BB2217D-0F2D-49D1-97BC-3654ED321F3B} | | ASP.NET MVC 1                                  | {603C0E0B-DB56-11DC-BE95-000D561079B0} | | ASP.NET MVC 2                                  | {F85E285D-A4E0-4152-9332-AB1D724D3325} | | ASP.NET MVC 3                                  | {E53F8FEA-EAE0-44A6-8774-FFD645390401} | | ASP.NET MVC 4                                  | {E3E379DF-F4C6-4180-9B81-6769533ABE47} | | ASP.NET MVC 5                                  | {349C5851-65DF-11DA-9384-00065B846F21} | | C#                                             | {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} | | C++                                            | {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942} | | Database                                       | {A9ACE9BB-CECE-4E62-9AA4-C7E7C5BD2124} | | Database (other project types)                 | {4F174C21-8C12-11D0-8340-0000F80270F8} | | Deployment Cab                                 | {3EA9E505-35AC-4774-B492-AD1749C4943A} | | Deployment Merge Module                        | {06A35CCD-C46D-44D5-987B-CF40FF872267} | | Deployment Setup                               | {978C614F-708E-4E1A-B201-565925725DBA} | | Deployment Smart Device Cab                    | {AB322303-2255-48EF-A496-5904EB18DA55} | | Distributed System                             | {F135691A-BF7E-435D-8960-F99683D2D49C} | | Dynamics 2012 AX C# in AOT                     | {BF6F8E12-879D-49E7-ADF0-5503146B24B8} | | F#                                             | {F2A71F9B-5D33-465A-A702-920D77279786} | | J#                                             | {E6FDF86B-F3D1-11D4-8576-0002A516ECE8} | | Legacy (2003) Smart Device (C#)                | {20D4826A-C6FA-45DB-90F4-C717570B9F32} | | Legacy (2003) Smart Device (VB.NET)            | {CB4CE8C6-1BDB-4DC7-A4D3-65A1999772F8} | | Micro Framework                                | {b69e3092-b931-443c-abe7-7e7b65f2a37f} | | Model-View-Controller v2 (MVC 2)               | {F85E285D-A4E0-4152-9332-AB1D724D3325} | | Model-View-Controller v3 (MVC 3)               | {E53F8FEA-EAE0-44A6-8774-FFD645390401} | | Model-View-Controller v4 (MVC 4)               | {E3E379DF-F4C6-4180-9B81-6769533ABE47} | | Model-View-Controller v5 (MVC 5)               | {349C5851-65DF-11DA-9384-00065B846F21} | | Mono for Android                               | {EFBA0AD7-5A72-4C68-AF49-83D382785DCF} | | MonoTouch                                      | {6BC8ED88-2882-458C-8E55-DFD12B67127B} | | MonoTouch Binding                              | {F5B4F3BC-B597-4E2B-B552-EF5D8A32436F} | | Portable Class Library                         | {786C830F-07A1-408B-BD7F-6EE04809D6DB} | | Project Folders                                | {66A26720-8FB5-11D2-AA7E-00C04F688DDE} | | Service Fabric Application (.sfproj)           | {A07B5EB6-E848-4116-A8D0-A826331D98C6} | | SharePoint (C#)                                | {593B0543-81F6-4436-BA1E-4747859CAAE2} | | SharePoint (VB.NET)                            | {EC05E597-79D4-47f3-ADA0-324C4F7C7484} | | SharePoint Workflow                            | {F8810EC1-6754-47FC-A15F-DFABD2E3FA90} | | Silverlight                                    | {A1591282-1198-4647-A2B1-27E5FF5F6F3B} | | Smart Device (C#)                              | {4D628B5B-2FBC-4AA6-8C16-197242AEB884} | | Smart Device (VB.NET)                          | {68B1623D-7FB9-47D8-8664-7ECEA3297D4F} | | Solution Folder                                | {2150E333-8FDC-42A3-9474-1A3956D46DE8} | | Test                                           | {3AC096D0-A1C2-E12C-1390-A8335801FDAB} | | Universal Windows Class Library                | {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A} | | VB.NET                                         | {F184B08F-C81C-45F6-A57F-5ABD9991F28F} | | Visual Database Tools                          | {C252FEB5-A946-4202-B1D4-9916A0590387} | | Visual Studio 2015 Installer Project Extension | {54435603-DBB4-11D2-8724-00A0C9A8B90C} | | Visual Studio Tools for Applications (VSTA)    | {A860303F-1F3F-4691-B57E-529FC101A107} | | Visual Studio Tools for Office (VSTO)          | {BAA0C2D2-18E2-41B9-852F-F413020CAA33} | | Web Application                                | {349C5851-65DF-11DA-9384-00065B846F21} | | Web Site                                       | {E24C65DC-7377-472B-9ABA-BC803B73C61A} | | Windows (C#)                                   | {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} | | Windows (VB.NET)                               | {F184B08F-C81C-45F6-A57F-5ABD9991F28F} | | Windows (Visual C++)                           | {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942} | | Windows Communication Foundation (WCF)         | {3D9AD99F-2412-4246-B90B-4EAA41C64699} | | Windows Phone 8/8.1 Blank/Hub/Webview App      | {76F1466A-8B6D-4E39-A767-685A06062A39} | | Windows Phone 8/8.1 App (C#)                   | {C089C8C0-30E0-4E22-80C0-CE093F111A43} | | Windows Phone 8/8.1 App (VB.NET)               | {DB03555F-0C8B-43BE-9FF9-57896B3C5E56} | | Windows Presentation Foundation (WPF)          | {60DC8134-EBA5-43B8-BCC9-BB4BC16C2548} | | Windows Store (Metro) Apps & Components        | {BC8A1FFA-BEE3-4634-8014-F334798102B3} | | Workflow (C#)                                  | {14822709-B5A1-4724-98CA-57A101D1B079} | | Workflow (VB.NET)                              | {D59BE175-2ED0-4C54-BE3D-CDAA9F3214C8} | | Workflow Foundation                            | {32F31D43-81CC-4C15-9DE6-3FC5453562B6} | | Xamarin.Android                                | {EFBA0AD7-5A72-4C68-AF49-83D382785DCF} | | Xamarin.iOS                                    | {6BC8ED88-2882-458C-8E55-DFD12B67127B} | | XNA (Windows)                                  | {6D335F3A-9D43-41b4-9D22-F6F17C4BE596} | | XNA (XBox)                                     | {2DF5C3F4-5A5F-47a9-8E94-23B4456F55E2} | | XNA (Zune)                                     | {D399B71A-8929-442a-A9AC-8BEC78BB2433} | +------------------------------------------------+----------------------------------------+ 

By GUID:

+------------------------------------------------+----------------------------------------+ |                  Project Type                  |                 GUID   +------------------------------------------------+----------------------------------------+ | Deployment Merge Module                        | {06A35CCD-C46D-44D5-987B-CF40FF872267} | | Workflow (C#)                                  | {14822709-B5A1-4724-98CA-57A101D1B079} | | Legacy (2003) Smart Device (C#)                | {20D4826A-C6FA-45DB-90F4-C717570B9F32} | | Solution Folder                                | {2150E333-8FDC-42A3-9474-1A3956D46DE8} | | XNA (XBox)                                     | {2DF5C3F4-5A5F-47a9-8E94-23B4456F55E2} | | Workflow Foundation                            | {32F31D43-81CC-4C15-9DE6-3FC5453562B6} | | Web Application (incl. MVC 5)                  | {349C5851-65DF-11DA-9384-00065B846F21} | | Test                                           | {3AC096D0-A1C2-E12C-1390-A8335801FDAB} | | Windows Communication Foundation (WCF)         | {3D9AD99F-2412-4246-B90B-4EAA41C64699} | | Deployment Cab                                 | {3EA9E505-35AC-4774-B492-AD1749C4943A} | | Smart Device (C#)                              | {4D628B5B-2FBC-4AA6-8C16-197242AEB884} | | Database (other project types)                 | {4F174C21-8C12-11D0-8340-0000F80270F8} | | Visual Studio 2015 Installer Project Extension | {54435603-DBB4-11D2-8724-00A0C9A8B90C} | | SharePoint (C#)                                | {593B0543-81F6-4436-BA1E-4747859CAAE2} | | ASP.NET MVC 1.0                                | {603C0E0B-DB56-11DC-BE95-000D561079B0} | | Windows Presentation Foundation (WPF)          | {60DC8134-EBA5-43B8-BCC9-BB4BC16C2548} | | Smart Device (VB.NET)                          | {68B1623D-7FB9-47D8-8664-7ECEA3297D4F} | | Project Folders                                | {66A26720-8FB5-11D2-AA7E-00C04F688DDE} | | MonoTouch                                      | {6BC8ED88-2882-458C-8E55-DFD12B67127B} | | XNA (Windows)                                  | {6D335F3A-9D43-41b4-9D22-F6F17C4BE596} | | Windows Phone 8/8.1 Blank/Hub/Webview App      | {76F1466A-8B6D-4E39-A767-685A06062A39} | | Portable Class Library                         | {786C830F-07A1-408B-BD7F-6EE04809D6DB} | | ASP.NET 5                                      | {8BB2217D-0F2D-49D1-97BC-3654ED321F3B} | | C++                                            | {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942} | | Deployment Setup                               | {978C614F-708E-4E1A-B201-565925725DBA} | | .NET Core                                      | {9A19103F-16F7-4668-BE54-9A1E7A4F7556} | | Service Fabric Application (.sfproj)           | {A07B5EB6-E848-4116-A8D0-A826331D98C6} | | Silverlight                                    | {A1591282-1198-4647-A2B1-27E5FF5F6F3B} | | Universal Windows Class Library                | {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A} | | Visual Studio Tools for Applications (VSTA)    | {A860303F-1F3F-4691-B57E-529FC101A107} | | Database                                       | {A9ACE9BB-CECE-4E62-9AA4-C7E7C5BD2124} | | Deployment Smart Device Cab                    | {AB322303-2255-48EF-A496-5904EB18DA55} | | Micro Framework                                | {B69E3092-B931-443C-ABE7-7E7B65F2A37F} | | Visual Studio Tools for Office (VSTO)          | {BAA0C2D2-18E2-41B9-852F-F413020CAA33} | | Windows Store Apps (Metro Apps)                | {BC8A1FFA-BEE3-4634-8014-F334798102B3} | | C# in Dynamics 2012 AX AOT                     | {BF6F8E12-879D-49E7-ADF0-5503146B24B8} | | Windows Phone 8/8.1 App (C#)                   | {C089C8C0-30E0-4E22-80C0-CE093F111A43} | | Visual Database Tools                          | {C252FEB5-A946-4202-B1D4-9916A0590387} | | Legacy (2003) Smart Device (VB.NET)            | {CB4CE8C6-1BDB-4DC7-A4D3-65A1999772F8} | | XNA (Zune)                                     | {D399B71A-8929-442a-A9AC-8BEC78BB2433} | | Workflow (VB.NET)                              | {D59BE175-2ED0-4C54-BE3D-CDAA9F3214C8} | | Windows Phone 8/8.1 App (VB.NET)               | {DB03555F-0C8B-43BE-9FF9-57896B3C5E56} | | Web Site                                       | {E24C65DC-7377-472B-9ABA-BC803B73C61A} | | ASP.NET MVC 4.0                                | {E3E379DF-F4C6-4180-9B81-6769533ABE47} | | ASP.NET MVC 3.0                                | {E53F8FEA-EAE0-44A6-8774-FFD645390401} | | J#                                             | {E6FDF86B-F3D1-11D4-8576-0002A516ECE8} | | SharePoint (VB.NET)                            | {EC05E597-79D4-47f3-ADA0-324C4F7C7484} | | Xamarin.Android / Mono for Android             | {EFBA0AD7-5A72-4C68-AF49-83D382785DCF} | | Distributed System                             | {F135691A-BF7E-435D-8960-F99683D2D49C} | | VB.NET                                         | {F184B08F-C81C-45F6-A57F-5ABD9991F28F} | | F#                                             | {F2A71F9B-5D33-465A-A702-920D77279786} | | MonoTouch Binding                              | {F5B4F3BC-B597-4E2B-B552-EF5D8A32436F} | | ASP.NET MVC 2.0                                | {F85E285D-A4E0-4152-9332-AB1D724D3325} | | SharePoint Workflow                            | {F8810EC1-6754-47FC-A15F-DFABD2E3FA90} | | C#                                             | {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} | +------------------------------------------------+----------------------------------------+ 

Notes: You will find these properties as a <ProjectTypeGuids> element in the project file, not to be confused with <ProjectGuid> which is a unique identifier for your project.

Some GUIDs are used in combination. For example, <ProjectTypeGuids>{EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> describes a Xamarin.Android library in C#.

like image 29
Steve Sheldon Avatar answered Sep 28 '22 17:09

Steve Sheldon