Visual Studio recuperando una ruta incorrecta a un proyecto desde algún lugar

98

Visual Studio (y posiblemente TFS) de alguna manera (creo que tal vez durante una fusión de control de fuente) se ha confundido acerca de la ruta de un proyecto dentro de mi solución.

Cree que está aquí (rutas de ejemplo para simplificar):

C:\My Projects\ExampleSolution\ExampleProjectWrong\ExampleProjectCorrect.csproj

mientras que en realidad, el archivo del proyecto se encuentra aquí:

C:\My Projects\ExampleSolution\ExampleProjectCorrect\ExampleProjectCorrect.csproj

No puedo por mi vida hacer que reconozca la ubicación correcta. Yo he tratado:

  • Eliminar y volver a agregar el proyecto desde la ubicación correcta. Aparece un mensaje de error que dice The project file at C:\My Projects\ExampleSolution\ExampleProjectWrong\ExampleProjectCorrect.csproj could not be found.

  • Editar manualmente el archivo .sln para garantizar que todas las referencias ExampleProjectCorrect.csprojtengan las rutas correctas.

  • Haciendo una búsqueda en archivos en el directorio de la solución para las rutas correctas e incorrectas, para intentar rastrear dónde está ocultando Studio la ruta incorrecta.

  • Eliminar los directorios de caché para VS y TFS

Me estoy arrancando los pelos porque no puedo recrear la solución, ya que tiene casi 100 proyectos y está vinculado al control de código fuente con varios otros desarrolladores que trabajan en ella.

¿Alguien puede señalarme en la dirección correcta en cuanto a dónde está almacenando esta ruta incorrecta y / o cómo restablecerla para que la maldita cosa se cargue correctamente?

Charlie Drewitt
fuente
Entonces, ¿qué sucede si mueve el proyecto al directorio ExampleProjectWrong?
Hans Passant
Ok, algo de progreso ... Moverlo a la carpeta incorrecta me permite cargarlo en Visual Studio. Sin embargo, no puedo mantenerlo allí, ya que el directorio 'ExampleProjectWrong' es el hogar de otro proyecto, que contiene prácticamente la misma estructura de carpetas. Entonces, ¿alguna idea de cómo cambiar la ruta del proyecto ahora que lo tengo cargado? El campo de ruta en las propiedades del proyecto descargado no está disponible, incluso cuando el proyecto está descargado.
Charlie Drewitt
3
Tengo este problema por segunda vez, pero esta vez pude darme cuenta de que el proyecto ramificado apuntaba a la carpeta original porque utilizo diferentes cadenas de conexión. Esto fue muy extraño la primera vez, causando que visualstudio depurara archivos de la carpeta de origen y lo mezclara con archivos de la rama, ¡e incluso Log4net registró en la carpeta original! Did eliminar el archivo suo solución y ahora está accediendo correctamente sólo los archivos ramificados.
Binke
2
Tuve exactamente el mismo problema. No fue tan fácil como eliminar el archivo suo. Tuve que: 1. Eliminar el proyecto infractor de la solución. 2. Guarde la solución. 3. Elimine el .suo 4. Abra la solución y vuelva a agregar el proyecto.
SeanLAllen
1
Eliminar el archivo SUO funcionó para mí.
DanielV

Respuestas:

96
  1. Vaya a Administrar áreas de trabajo (ya sea a través del menú Archivo / Control de fuente o el menú desplegable del área de trabajo en el Explorador de control de fuente)
  2. seleccione editar para su espacio de trabajo.
  3. Debería ver, en las carpetas de trabajo, una asignación del directorio de control de origen al directorio del proyecto antiguo / incorrecto.
  4. Selecciónelo y haga clic en eliminar .
  5. Cierre VS y elimine el archivo suo.

Todavía hace referencia al directorio incorrecto. Quizás volver a unir podría funcionar en este punto, pero no lo intenté. Vuelva a cargar su proyecto y estará listo para comenzar.

Benjamin Potts
fuente
1
Además, déjese engañar por el enlace de la ruta local en el explorador de control de código fuente. Tenía más de un mapeo para mi espacio de trabajo y mostraba lo que esperaba allí, pero cuando intentó cargar el proyecto, estaba usando la otra ruta.
Benjamin Potts
1
El archivo .suo está oculto, por lo que debe habilitar la opción "mostrar todos los archivos y carpetas"
ANIL MANE
8
En Visual Studio 2015 experimenté el mismo error. Lo que funcionó para mí fue eliminar el directorio .vs oculto y el archivo .suo también.
Daniel Leiszen
5
Para VS2015, es posible .suoque su archivo no esté donde cree. Elimine el que se encuentra junto a su .slnarchivo (no olvide "mostrar archivos ocultos") y también hay uno escondido en un subdirectorio en .\.vs\[solution_name]\v14\.suo. Una vez que los obtuve, podría agregar el proyecto nuevamente. Vaya, crédito parcial para @DanielLeiszen (acabo de notar que comentó lo mismo)
Richard Hauer
1
Tuve que eliminar el archivo .suo y reiniciar VS para que prevaleciera la cordura
Appulus
33

Simplemente eliminar el .suoarchivo de soluciones funcionó para mí.

Lloyd Powell
fuente
5
En VS2015, necesitaba cerrar todas las instancias de Visual Studio antes de que la eliminación <SolutionDir>\.vs\<SolutionName>\<VsVersion>\.suofuncionara para mí.
GraehamF
12

Me enfrentaba a este problema después de realizar una migración de Visual Source Safe 2005 a TFS 2012. No podía esperar a que saliera el "Asistente de conversión" en las próximas semanas, así que simplemente ejecuté VSSConvert.exe. Esto tomó 6 o más años de historia y lo movió a TFS ... aunque no obtuve el historial de la línea de tiempo real ... Recibí un montón de entradas el mismo día con los comentarios que indicaban los registros reales del historial. . no está mal.

Entonces, después de que se ejecutó toda la noche (¡exitosamente, sí!), Tuve problemas para cargar mis proyectos tal como se indica en esta pregunta. Por alguna razón, se hacía referencia a algunos proyectos a un directorio incorrecto. Revisé los archivos .sln, .vsproj y obtuve los últimos, eliminé, agregué, eliminé, etc. Intenté todo lo que se indica aquí ... incluso actualicé mi espacio de trabajo, lo cual no estoy seguro de lo que hizo.

FINALMENTE ... borré los archivos * .suo y viola. Funcionó.

Pasé un par de horas en este.

hanzolo
fuente
2
Antes de eliminar el archivo * .suo, asegúrese de cerrar todas las instancias de Visual Studio y luego vuelva a abrir la solución.
Mas
5

Una solución ligeramente diferente.

TFS mostraba una ruta inexistente para una solución en particular. Anteriormente, tenía una computadora portátil con una unidad D: separada, pero ahora solo tengo una unidad C :. TFS todavía pensaba que mi proyecto estaba almacenado en D: \ Project \ MikesProject

No tenía un .suoarchivo para eliminar, la ruta D: no se mencionó en ningún lugar de mis espacios de trabajo (escondida debajo del File\Source Control\Advanced\Workspacesmenú), TFS mostró que tenía los archivos más recientes en mi (ya no existe) D: directorio, y TFS en VS2013 no tenía una opción "Eliminar asignaciones" para este proyecto.

Pero lo que funcionó fue simplemente "Obtener la última versión" del proyecto.

Después de hacerlo, se escribió una copia nueva del código en mi unidad C: y (curiosamente), ahora la ruta local se muestra subrayada .

Anteriormente, la ruta D: no se mostraba así.

Impar. Muy raro.

Mike Gledhill
fuente
2
Exactamente la misma situación para mí. Dudé en apretar el gatillo y "Get Latest" debido a ese camino incorrecto, ¡pero @Mike me dio el valor!
Jonathan
2

Hemos tenido problemas similares con movimientos y cambios de nombre. Eliminar los directorios locales y luego volver a obtenerlo lo resolvió.

Tony Hopkinson
fuente
2

Incluso después de eliminar el .suoarchivo y las .vscarpetas, tuve que editar el .slnarchivo y eliminar la antigua URL relativa a SccProjectName#pesar de que SccLocalPath#era correcta. Aparentemente, VS también usa el nombre como pista de pista.

Adán
fuente
1

Intente eliminar o cambiar el nombre del archivo .suo (incluida la extensión). Este archivo está en la misma ubicación donde está su archivo de solución. Funcionó para mí.

Mandeep Janjua
fuente
0

Solo una suposición, pero ¿quizás algunos de sus otros proyectos hacen referencia a su proyecto desde la ubicación incorrecta? En este caso, no solo tiene que eliminar y volver a insertar el proyecto en su solución, también tendrá que eliminar y volver a crear las referencias de los proyectos de referencia (almacenados en sus archivos .csproj).

Doc Brown
fuente
Gracias por la respuesta. no se hace referencia al proyecto desde ningún otro proyecto dentro de la solución. ¿Puede explicar por qué la búsqueda en archivos no funcionaría? en mi experiencia, si le da una ruta de directorio para 'Buscar en', en lugar de seleccionar 'Solución completa', buscará todos los tipos de archivos a menos que se le indique específicamente que busque solo ciertos tipos de archivos.
Charlie Drewitt
Lo siento, tiene razón, pensé que estaba usando "Buscar en archivos" solo para los archivos de la solución, no para el directorio de la solución, me lo perdí. Entonces debería funcionar. ¿Puede dar una descripción más detallada cuando aparece exactamente el mensaje de error? ¿Ocurre al compilar, para que pueda ver qué compilación del proyecto falló?
Doc Brown
0

Después de probar muchas recomendaciones, eliminé el archivo suo (nuevamente). La última vez funcionó. Por qué no funcionó antes, no lo sé. En general, la eliminación del archivo suo es uno de los primeros pasos que hago.

usuario3097514
fuente
0

Abrí mi solución de sitio web asp.net desde mi Dev Branch. Luego, para algún otro propósito, abrí la misma solución desde la rama principal.

Hice un cambio en uno de mis archivos .ascx.cs en la rama dev y establecí el punto de interrupción. Cuando ejecuté el depurador, todos mis puntos de interrupción se alcanzaron en la rama de desarrollo, excepto el .ascx.cs, que estaba llegando a la rama principal. No tengo ni idea.

Intenté limpiar la carpeta temporal pero no funcionó.

Qué funcionó:

Cerró todas las instancias de Visual Studio

Abrió la solución desde Dev branch nuevamente.

Corre de nuevo y los puntos de quiebre empezaron a golpear.

gbs
fuente
0

En mi caso, copié el archivo * .sln en la carpeta del proyecto y cambié la ruta para proyectar en el archivo * .sln. Solo esto resolvió el problema (vs 2015 sp1, proyecto winservise).

Eliminar * .suo no me ayuda.

Kamerton
fuente
0

Sin embargo, otra solución funcionó para nosotros, después de intentar eliminar suo y casi todo lo mencionado en este hilo. Teníamos un proyecto en la solución que mostraba una versión fantasma del archivo csproj. Eliminamos ese archivo y nuestras rutas se fijaron en otro proyecto que estábamos tratando de agregar.

Rondakay
fuente
-1

Si está ejecutando su aplicación web en IIS local en lugar de IISExpress, asegúrese de PRESIONAR el botón "Crear directorio virtual" yendo a las propiedades del proyecto. Una vez hecho esto, ejecute "Solución limpia" y "Solución de reconstrucción".

Ajinkya Surve
fuente
-1

Eliminar los archivos obj y bin resolvería el problema ...

Mohanad Shamsneh
fuente
-3

Sé que es una vieja línea. Simplemente pasé por el mismo problema. Recientemente migramos el TFS, así que creé un nuevo espacio de trabajo para asignarlo al nuevo servidor y mantuve el antiguo. Cada vez que abro una solución que se supone debe apuntar a mi nuevo espacio de trabajo, VS siempre intenta cargar proyectos desde mi antiguo directorio de mapeo, hasta que eliminé mi antiguo espacio de trabajo.

BackToSorrento
fuente
esto realmente no proporciona ninguna ayuda para la pregunta inicial
vlad_tepesch
Pensé que mi problema tenía la misma naturaleza. Tenía dos espacios de trabajo, uno de los cuales es antiguo. Trabajé en uno nuevo y creé una solución, agregué proyectos. todo está bien solo si no cerré la solución. Pero si guardaba la solución e intentaba abrirla, VS siempre intentaba cargar proyectos en la solución desde el directorio mapeado en mi antiguo espacio de trabajo.
BackToSorrento