2009-08-09 12 views
50

Después de usar Visual Studio 2008 al abrir una solución que está marcada en Visual Studio Team Foundation aparecerá un cuadro de diálogo que dice:Cómo resolver ... Notificación de Visual Studio Source Control "Recientemente se han agregado proyectos a esta solución"

Recientemente se han agregado proyectos a esta solución. ¿Quieres obtenerlos del control de fuente?

Esto ocurre cada vez que se carga la solución (incluso si no se han agregado proyectos). La única forma que he encontrado para eliminar esta pequeña molestia es reconstruir completamente el archivo SLN.

¿Alguien ha encontrado una manera mejor/más simple?

Respuesta

31

Oye, esto me sucedió hace unos 4 años.

En primer lugar, me parece que alguien de su equipo no tiene todas las actualizaciones aplicadas a la instalación de su estudio visual. Da la vuelta y consigue que todos se actualicen al último service pack para tu versión VS.

Una vez hecho esto, suelte la solución, arregle el archivo, vuelva a enlazarlo y dígale a todos que hagan un esfuerzo para obtener la última versión de su proyecto TFS.

Ver http://social.msdn.microsoft.com/Forums/en-US/tfsversioncontrol/thread/c2822ef1-d5a9-4039-9d3e-498892ce70b6

http://www.nivisec.com/2008/09/vsts-projects-have-recently-been-added.html

(enlace roto: http://technorati.com/posts/Yadz3Mj1pxHPSJLlnUs1tL1sIwU5jXa5rNBbIAnYdvs%3D)

+0

BTW. Eso es en realidad hace más de 5 años. : P – mayu

+0

@Tymek: Bueno ... escribí esto en '09, es 3 1/2 años después ... tan cerca de 7+.:) Supongo que he estado haciendo esto por un tiempo. – NotMe

+0

Utilicé la fecha 'editada', pero cuando la miro la fecha de edición fue solo para el enlace roto. – mayu

3

Este mensaje también se producirá si la solución tiene una referencia a un proyecto cuya ubicación es fuera del directorio de solución, pero no existe físicamente (es decir, no lo has verificado antes de abrir la solución). VSS (o TFS) le dará ese mensaje y haciendo clic en Aceptar obtendrá automáticamente lo último en el proyecto que falta para que su solución no tenga ningún proyecto descargado.

EDITAR:

lectura que de nuevo me confunde. Básicamente, recibe el mensaje si su solución tiene un enlace de control de origen a un proyecto que no está dentro de la carpeta en la que se encuentra su solución, y ese proyecto externo no existe físicamente en su máquina. Al hacer clic en Aceptar verificaremos el proyecto por usted.

+0

En la última línea, ¿quiere decir "verificar el proyecto" u "obtener la última versión del proyecto"? Sus párrafos parecen ser contradictorios en este punto. –

+0

Sí, la publicación temprano en la mañana es algo que debería evitar. Al hacer clic en "Continuar", se realizará el proyecto y se colocará físicamente en relación con la ubicación de la solución que lo solicita. Entonces, si su solución está en 'C: \ Dev \ Client \ Someone \ SolutionA' y el 'proyecto recientemente agregado' fue referenciado en' .. \ .. \ .. \ Common \ ProjectB' dentro de su solución, lo hará _get_ el proyecto y póngalo en 'C: \ Dev \ Common \ ProjectB' para que las referencias de su solución sean todas válidas. ¿Tiene sentido? –

37

Lo tuve recientemente después de mover varios proyectos en la solución. Finalmente resolví que cada proyecto real aparece en el archivo de solución múltiple veces cada con información de ruta! Así que, aunque la ruta en la referencia principal del proyecto era correcta, estaba equivocada más adelante en el archivo.

Así que ve a través del archivo .sln y asegúrese de que las rutas de acceso en todos los las referencias de cada proyecto es la correcta.

Por ejemplo, la primera referencia para uno de mis proyectos es:

Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ObexPushVB", "Samples\ObjectPush\ObexPushVB\ObexPushVB.vbproj", "{E3692A59-D636-48E8-9B57-7DA80A88E517}" 
EndProject 

En mi caso, el camino no se ha actualizado correctamente.Pero también tenemos para ese proyecto:

SccProjectUniqueName8 = Samples\\ObjectPush\\ObexPushVB\\ObexPushVB.vbproj 
SccProjectTopLevelParentUniqueName8 = InTheHand.Net.Personal.sln 
SccProjectName8 = Samples/ObjectPush/ObexPushVB 
SccLocalPath8 = Samples\\ObjectPush\\ObexPushVB 

¡Entonces todas esas rutas necesitaban ser actualizadas también! Después de que arreglé eso manualmente todo estaba bien. (La muestra hay después de la corrección por cierto).

+17

Solo un FYI: para lograr lo que describió anteriormente, pero de una manera más automática, abrí el archivo de solución en un editor de texto (después de revisarlo para editarlo) y eliminé el nodo GlobalSection (TeamFoundationVersionControl) = preSolution. Luego abrí la solución en Visual Studio e hice un Desvincular/Enlazar todo en la solución. Esto actualizó todo a la ruta correcta y ahora los errores se han ido. Gracias por tu publicación. –

+2

Gracias. ¡Eso parecerá una forma mucho más segura y rápida de resolverlo! (¡Aunque me gusta un poco la edición manual masoquista de archivos de configuración!: -,)) – alanjmcf

+0

Gracias alanjmcf! Eso lo solucionó para mí. Me alegro de no haber tenido que pasar por todas las molestias descritas en la respuesta aceptada de Chris Lively. – bitbonk

1

En mi caso, se trataba de una referencia a un proyecto de prueba que se ha eliminado.

Me di cuenta de que cuando inspeccioné todos los proyectos en el Explorador de soluciones. Nuestro equipo utiliza carpetas de soluciones por lo que normalmente no era visible y, dado que era un proyecto de prueba, no tuvo ningún impacto en la aplicación.

Después de eliminar el proyecto de la solución, los mensajes ya no se muestran.

1

estoy trabajando con Visual Studio 2013.

Para mí, sucedió después de haber modificado la estructura de la carpeta de mi solución (añadí una subcarpeta para un proyecto directamente en el código fuente del explorador). Me deshice de este error aburrido al eliminar todos los proyectos de mi solución, utilizando el explorador de soluciones. Después de eso, cerré Visual Studio, editado manualmente el archivo .sln y se retira toda la sección:

GlobalSection(TeamFoundationVersionControl) = preSolution 

Para finalizar, me acaba de agregar los proyectos de nuevo a la solución como "proyectos existentes" con explorador de soluciones. Visual Studio recreará por sí mismo la sección eliminada del archivo .sln.

0

El mismo mensaje de error puede aparecer si alguien agrega un proyecto, un archivo de solución editado, pero no agrega el directorio del proyecto al control de origen.

Para abreviar: este error puede significar que en el archivo .sln hay una referencia al archivo .csproj, pero el archivo .csproj en sí no está físicamente.

0

En mi caso renombré un proyecto (n) (descargado) en VS. Se movió correctamente el proyecto a una nueva carpeta y no se perdieron datos. Sin embargo, el archivo de solución todavía apuntaba al directorio anterior que todavía existía pero estaba vacío (por lo que el proyecto no se pudo cargar).

Después de eliminar el proyecto de la solución (que no era un problema porque la carpeta ya estaba vacía) se solucionó el problema.

Agregar el proyecto nuevamente desde la nueva ubicación tampoco fue un problema.

0

Tuve este problema después de mover una cantidad de proyectos de prueba unitaria que estaban bajo control de fuente (VSTS) en otra carpeta. Después de esto cada vez que abría una sucursal, obtenía los "Proyectos recientemente agregados a esta solución. ¿Desea obtenerlos del control de origen?" error.

Por alguna razón, el archivo csproj del tronco no estaba bajo control de código fuente, lo que significaba que faltaba en la versión ramificada. Encuentro que esto sucede a veces después de mover proyectos controlados por fuente.

Para arreglarlo, abrí el tronco de la fuente original, usé Source Control Explorer para agregar los archivos faltantes, luego fusioné el tronco con las ramas para copiar el archivo csproj que faltaba.

Después de esto, pude abrir las versiones ramificadas sin que apareciera la advertencia.

Cuestiones relacionadas