2008-09-09 16 views
12

Los archivos de solución Visual Studio contienen dos GUID por entrada de proyecto. Me imagino que uno de ellos es de AssemblyInfo.csGUID en un archivo SLN

¿Alguien sabe con certeza de dónde vienen estos y para qué se utilizan?

+0

¿Alguna solución final con el código fuente completo de la muestra trabajando al respecto? – Kiquenet

Respuesta

13

Ni GUID es el mismo GUID que desde AssemblyInfo.cs (que es el GUID para el ensamblado en sí, no vinculado a Visual Studio, pero el producto final de la construcción).

Así, para una línea típica en el archivo sln (abrir la .sln en el bloc de notas o un editor de elección si desea ver esto):

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleSandbox", "ConsoleSandbox\ConsoleSandbox.csproj", "{55A1FD06-FB00-4F8A-9153-C432357F5CAC}" 

El segundo GUID es un GUID único para el proyecto en sí El archivo de solución utiliza esta para asignar otros ajustes a ese proyecto:

GlobalSection(ProjectConfigurationPlatforms) = postSolution 
    {55A1FD06-FB00-4F8A-9153-C432357F5CAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 
    {55A1FD06-FB00-4F8A-9153-C432357F5CAC}.Debug|Any CPU.Build.0 = Debug|Any CPU 
    {55A1FD06-FB00-4F8A-9153-C432357F5CAC}.Release|Any CPU.ActiveCfg = Release|Any CPU 
    {55A1FD06-FB00-4F8A-9153-C432357F5CAC}.Release|Any CPU.Build.0 = Release|Any CPU 

EndGlobalSection

El primer GUID es en realidad un GUID que es el GUID único para la solución en sí (creo). Si tiene una solución con más de un proyecto, en realidad verá algo como lo siguiente:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleSandbox", "ConsoleSandbox\ConsoleSandbox.csproj", "{55A1FD06-FB00-4F8A-9153-C432357F5CAC}" 
EndProject 
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Composite", "..\CompositeWPF\Source\CAL\Composite\Composite.csproj", "{77138947-1D13-4E22-AEE0-5D0DD046CA34}" 
EndProject 
+0

cualquier análisis en C# para archivo sln? Es una lástima que el archivo sln no sea formato XML. @JasonOlson – Kiquenet

+5

El primer GUID identifica el tipo de proyecto, como (brevemente) se menciona aquí - http://msdn.microsoft.com/en-us/library/bb165951(v=vs.90).aspx. También vea http://www.mztools.com/Articles/2008/MZ2008017.aspx para obtener una lista de los tipos de proyectos. (Todavía me pregunto si hay una guía especial para una carpeta de solución ...) – yoyo

+1

Gracias por el enlace @yoyo. La carpeta GUID parece ser {2150E333-8FDC-42A3-9474-1A3956D46DE8}. – Giles

6

According to MSDN:

[El Project] Declaración contiene el GUID proyecto único y el tipo GUID proyecto . Esta información es utilizada por el entorno para encontrar el archivo del proyecto o archivos que pertenecen a la solución , y VSPackage requiere para cada proyecto. El GUID del proyecto es pasado a IVsProjectFactory para cargar el VSPackage específico relacionado con el proyecto , luego el proyecto se carga por VSPackage.

Cuestiones relacionadas