2010-02-24 16 views
33

Tengo varios proyectos en una sola solución de Visual Studio (2008).
acabo de descubrir que cada uno de estos proyectos utiliza un mismo GUID, por lo que en el archivo de solución que tiene este aspecto:¿Para qué se usan los GUID de un archivo de solución de Visual Studio?

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

¿Tengo que cambiar estos GUID por lo que son únicos y para qué se usan para ?

+1

¿Tiene en ambos coincidan archivos csproj? – Ryu

+0

@Ryu en caso afirmativo, ¿qué significa? –

Respuesta

40

Proyecto bloque de persistencia en un archivo de solución tiene el siguiente formato:

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

Por lo tanto se espera que el primer GUID es no único, que identifica de forma exclusiva paquete de Visual Studio que se encarga de este tipo de proyectos.

El GUID que ha publicado es interesante: parece un GUID de proyecto C# destrozado, que es FAE04EC0-301F-11D3-BF4B-00C04F79EFBC. ¿Lo modificó usted mismo o es un problema de publicación (por ejemplo, está utilizando una configuración regional de derecha a izquierda, como el hebreo o el árabe)?

+1

¡Muchas gracias, Oleg!Cambié el GUID porque pensé que sería único por solución o más. No tenía una idea mejor que revertir algunos de sus valores y ciertamente no pensé que sería un valor común para los proyectos de C# :-) – Marc

+10

¿Memorizas los GUID? – Seth

+18

@Seth no? ;) – sebagomez

3

Las guías de proyecto en el archivo csproj deben ser únicas. Desde mi experiencia, si se incluyen dos archivos csproj en la misma solución, visual studio regenera automáticamente uno de los guids.

+0

Tanto VS como Sharpdevelop hacen esto por usted. Solo tenga en cuenta las implicaciones si el proyecto cuyo GUID cambió fue referenciado por otra solución en otro lugar. El archivo sln de la otra solución y otros archivos de proyecto que hacen referencia al proyecto modificado usarán el antiguo GUID y esto romperá las referencias del proyecto. Fácil de arreglar pero vale la pena tener en cuenta. También vale la pena saber que VS bien podría cambiar el GUID del proyecto que estaba allí primero. – andyhasit

14

A menudo copiaré un archivo de proyecto VS, lo cambiaré de nombre y buscaré y reemplazaré todas las apariciones del nombre del proyecto para crear un nuevo proyecto con la misma configuración. Esto a menudo es más rápido que crear un nuevo proyecto y luego garantizar que todas las configuraciones sean correctas. Ignoro el GUID. VS cambiará el GUID tan pronto como guarde el proyecto después de agregarlo a la solución. Hago mucho desarrollo de DLL/C/C++ y me he desviado de la configuración de proyecto estándar extensamente a lo largo de los años (particularmente en cuanto a optimización, generación de código, etc.) y encuentro la técnica de copiado más rápida y segura de configurar un proyecto.

+2

Gracias. Editar un archivo XML es mucho más fácil que recordar dónde hacer clic y qué menú abrir, etc. Los archivos de texto son mucho más repetibles que las acciones de la GUI. – Bram

+2

Puede resolver la mayor parte de eso con Project Property Sheets. Pon toda tu optimización/generación de código, etc., y luego incluye las hojas en cada proyecto. –

1

Palabras sabias: Si está haciendo un proyecto de XBOX360 XNA 4.0 y está intentando este truco, No utilice un guid generado por VS 2012. generar uno en VS2010 y usar ese.

O recibirá el siguiente error cuando intente ejecutar su proyecto redirigido en XNA Game Studio Connect.

"Este juego se ha perdido o está dañado, bla, bla, bla, reinicie XNA Game Studio Connect?"

y luego se bombardeará. Las guías VS 2010 funcionan bien. No tengo ni idea de porqué.

+1

De manera más general, teniendo más pruebas, el cambio de nombre per se en Visual Studio 2012 se rompe horriblemente. Utilizaría 2010 o 2013 para estas funciones. – twobob

Cuestiones relacionadas