Parece que esta sintaxis redundantes es una de las peculiaridades requeridas por MSBuild para reconocer la dependencia de un proyecto:
Parece que Visual Studio mantiene las dependencias de dos maneras, una sola de los cuales se lee por MSBuild.Veo que debido a que todavía puedo especificar las dependencias en GUI, copie la solución a otra máquina y compórtala con VS en pedido correcto. - Victor Sergienko
En cuanto a qué se requiere la "declaración ecuación superflua", parece que el asignar de GUID para su propio GUID de un proyecto es una solución para un problema con MSBuild 4.0 que causa MSBuild que no reconocer o responder a ciertas dependencias de proyecto enumeradas en un archivo de solución (.sln) o crear dependencias desordenadas.
La sintaxis jodida "{x} = {x}" sobre la que pregunta es una variación de la sintaxis estándar de MSBuild para hacer referencia a un proyecto (es decir, la respuesta del ejemplo @ Sergio).
Aparentemente, incrustando la declaración de dependencia en un bloque ProjectSection junto con un GUID de dependencia autodenominado hace que MSBuild cambie el orden de compilación del proyecto dependiente, pero en realidad no agrega otra referencia al mismo.
Hay un discussion on Microsoft Connect donde se trata esta solución. En ella, Dan de Microsoft sugiere una solución limpia para este fallo MSBuild en su segundo puesto en la página, y también menciona la solución que estás preguntando por:
que fija el ordenamiento, como ahora LibraryProject esperará en CodeGeneratingProject, pero su construcción no se verá afectada. Puedo poner en orden mediante la eliminación de la dependencia en el archivo de solución, así - la eliminación de estas líneas, que ahora son innecesarios:
ProjectSection(ProjectDependencies) = postProject
{B79CE0B0-565B-4BC5-8D28-8463A05F0EDC} = {B79CE0B0-565B-4BC5-8D28-8463A05F0EDC}
EndProjectSection
y todavía funciona bien.
¿Qué sucede si lo saca? –