102 votes

Visual Studio récupère un chemin d'accès incorrect à un projet depuis quelque part

Visual Studio (et peut-être TFS) a, d'une manière ou d'une autre (peut-être lors d'une fusion du contrôle de la source), confondu le chemin d'un projet dans ma solution.

Il pense qu'il se trouve ici (exemples de chemins pour simplifier) :

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

alors qu'en fait, le fichier du projet se trouve ici :

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

Je n'arrive pas à faire en sorte qu'il reconnaisse le bon emplacement. J'ai essayé :

  • Retirer et replacer le projet au bon endroit. Un message d'erreur s'affiche, disant The project file at C:\My Projects\ExampleSolution\ExampleProjectWrong\ExampleProjectCorrect.csproj could not be found .

  • Éditer manuellement le fichier .sln pour s'assurer que toutes les références à ExampleProjectCorrect.csproj ont les bons chemins.

  • Faire une recherche dans les fichiers du répertoire de la solution pour les chemins corrects et incorrects, pour essayer de trouver où Studio cache le chemin incorrect.

  • Suppression des répertoires cache pour VS et TFS

Je m'arrache les cheveux parce que je n'arrive pas à recréer la solution qui n'a presque rien changé depuis 100 projets et qui est liée au contrôle des sources avec plusieurs autres développeurs qui travaillent dessus.

Quelqu'un peut-il m'indiquer où il stocke ce chemin incorrect et/ou comment le réinitialiser pour que cette fichue chose se charge correctement ?

0 votes

Alors, que se passe-t-il si vous déplacez le projet dans le répertoire ExampleProjectWrong ?

0 votes

Ok, quelques progrès.. Le déplacer dans le mauvais dossier me permet de le charger dans Visual Studio. Je ne peux cependant pas le garder là car le répertoire 'ExampleProjectWrong' abrite un autre projet, contenant à peu près la même structure de dossiers. Donc, une idée sur la façon de modifier le chemin du projet maintenant que je l'ai chargé ? Le champ du chemin dans les propriétés du projet déchargé n'est pas disponible, même lorsque le projet est déchargé ?

3 votes

J'ai eu ce problème pour la deuxième fois maintenant, mais cette fois j'ai pu comprendre que le projet branché ciblait le dossier d'origine parce que j'utilise différentes connectionstrings. La première fois, c'était très bizarre, visualstudio déboguait dans les fichiers du dossier source, et les mélangeait avec les fichiers de la branche, et même Log4net se connectait au dossier d'origine ! Est-ce que supprimer le fichier suo de la solution et il accède maintenant correctement aux seuls fichiers branchés.

99voto

Benjamin Potts Points 296
  1. Aller à Gérer les espaces de travail (soit par le menu Fichier/Contrôle de la source, soit par le menu déroulant de l'espace de travail dans l'explorateur de contrôle de la source).
  2. sélectionnez modifier pour votre espace de travail.
  3. Vous devriez voir, sous les dossiers de travail, un mappage pour la source vers le répertoire de l'ancien/du mauvais projet.
  4. Sélectionnez-le et cliquez sur supprimer .
  5. Fermez VS et supprimez le fichier suo.

Il fait toujours référence au mauvais répertoire. Peut-être que relier à nouveau pourrait fonctionner à ce stade, mais je n'ai pas essayé. Rechargez votre projet et vous devriez être prêt à partir.

1 votes

De plus, ne vous laissez pas tromper par le lien du chemin local dans l'explorateur de contrôle de source. J'avais plus d'un mappage pour mon espace de travail et il montrait ce que j'attendais, mais quand j'ai essayé de charger le projet, il utilisait l'autre chemin.

1 votes

Le fichier .suo est caché, vous devez donc activer l'option "Afficher tous les fichiers et dossiers".

8 votes

Dans Visual Studio 2015, j'ai rencontré la même erreur. Ce qui a fonctionné pour moi a été de supprimer le répertoire caché .vs et le fichier .suo également.

33voto

ThePower Points 6394

En supprimant simplement les solutions .suo a fonctionné pour moi.

5 votes

Dans VS2015, je devais fermer toutes les instances de Visual Studio avant de supprimer <SolutionDir>\.vs\<SolutionName>\<VsVersion>\.suo a fonctionné pour moi.

14voto

hanzolo Points 618

J'ai été confronté à ce problème après avoir effectué une migration de Visual Source Safe 2005 vers TFS 2012. Je ne pouvais pas attendre la sortie de l'"Assistant de conversion" prévue pour les deux prochaines semaines, alors j'ai simplement exécuté VSSConvert.exe. Cela a pris environ 6 ans d'histoire et les a déplacés dans TFS bien que je n'aie pas obtenu l'historique réel J'ai obtenu un tas d'entrées le même jour avec des commentaires indiquant les vérifications réelles de l'historique pas mal.

Donc, après qu'il ait fonctionné toute la nuit (avec succès, yay !), j'ai eu des problèmes pour charger mes projets, comme indiqué dans la question. Pour une raison quelconque, quelques projets étaient référencés dans un répertoire incorrect. J'ai vérifié les fichiers .sln, les fichiers .vsproj, et j'ai récupéré les plus récents, supprimé, récupéré à nouveau, ajouté, supprimé, etc. J'ai essayé tout ce qui est indiqué ici... même la mise à niveau de mon espace de travail, mais je ne suis pas sûr de ce que cela a fait.

ENFIN... J'ai supprimé le *.suo des fichiers et viola. Ça a marché.

J'ai passé quelques heures sur celui-ci.

2 votes

Avant de supprimer le fichier *.suo, veillez à fermer toutes les instances de Visual Studio, puis ouvrez à nouveau la solution.

5voto

Mike Gledhill Points 2105

Une solution légèrement différente.

TFS affichait un chemin inexistant pour une solution particulière. Auparavant, j'avais un ordinateur portable avec un lecteur D : séparé, mais maintenant, je n'ai qu'un lecteur C :. TFS pensait toujours que mon projet était stocké sur D:\Project\MikesProject

Je n'avais pas de .suo fichier à supprimer, le chemin D : n'était pas n'est mentionnée nulle part dans mes espaces de travail (enfouie sous l'onglet File\Source Control\Advanced\Workspaces ), TFS a montré que j'avais bien les derniers fichiers dans mon répertoire D : (qui n'existe plus), et TFS dans VS2013 n'avait pas d'option "Supprimer les mappages" pour ce projet.

Mais qu'est-ce que a fait était de simplement faire un "Get latest version" sur le projet.

Après avoir fait cela, une nouvelle copie du code a été écrite sur mon lecteur C :, et (de manière intéressante), le chemin local est maintenant affiché. souligné .

Auparavant, le chemin D : n'était pas affiché comme ça.

Bizarre. Très bizarre.

2 votes

Exactement la même situation pour moi. J'hésitais à appuyer sur la gâchette et à "Obtenir les derniers" à cause de ce chemin incorrect, mais @Mike m'a donné le courage !

2voto

Tony Hopkinson Points 15160

Nous avons eu des problèmes similaires avec les déménagements et les renommages. La suppression des répertoires locaux et leur réactivation ont résolu le problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X