Le fichier de projet a été déplacé renommé ou ne se trouve pas sur votre ordinateur

150

J'obtiens cette erreur lorsque j'essaye de charger un projet VS 2008 à partir du contrôle de source TFS:

Le fichier de projet a été déplacé, renommé ou ne se trouve pas sur votre ordinateur

Après avoir cliqué sur OK, le projet dit «indisponible». Quel est le problème? Comment résoudre ça? Je n'ai jamais eu ce problème auparavant. Certains blogs ont dit de supprimer le fichier .suo mais je ne peux pas localiser le fichier .suo. J'ai supprimé l'ensemble du projet sur mon ordinateur local afin que la prochaine fois qu'il s'ouvre, il en crée un nouveau, mais j'obtiens toujours la même erreur.

sineas
la source
28
Oh, comme je déteste TFS pour m'avoir donné ces maux de tête!
John Leidegren
2
Descendez, vous trouverez la bonne réponse ici.
Claudius

Réponses:

270

Ce qui aide généralement à résoudre ce problème, c'est la suppression des options utilisateur de la solution, alias «SUO».

VS jusqu'en 2013

Dans l'ancien VS, il est stocké en tant que "caché" SolutionName.suodans le même dossier que le .slnfichier principal .

VS2015 ou version ultérieure

Dans VS2015, les mêmes données ont été déplacées vers un .vsdossier «caché» sous le même dossier que le .slnfichier principal .

Stanley.Goldman
la source
6
+1. Message d'erreur très malheureux - il est en fait plus susceptible de se produire lorsque vous avez déplacé les fichiers de la manière "correcte" selon votre fournisseur SCC. (par exemple en utilisant 'tf rename' pour TFS) Déplacer le projet sur le disque sans dire TFS, ou oublier de mettre à jour un fichier sln / csproj, entraînera différents messages d'erreur d'après mon expérience. Les fichiers SUO sont opaques, vous vous grattez donc la tête jusqu'à ce que vous fassiez un tfpt treeclean / scorch.
Richard Berg
8
Ça me sauve la journée;)
Kamil Lach
44
N'oubliez pas de redémarrer Visual Studio après avoir supprimé le fichier
.suo
8
Oh. Alors maintenant, le fichier .suo est caché. Pourquoi? Oh, je sais pourquoi. Nous sommes des développeurs et ne sommes évidemment pas capables de gérer la complexité supplémentaire de voir le fichier .suo à l'air libre ;-)
Torben Rahbek Koch
29
Cela fonctionne également dans Visual Studio 2015, bien que le chemin d'accès au fichier .suo soit devenu <SolutionFolder> \ .vs \ <SolutionName> \ v14 \ .suo.
Greg M.
38

Je viens de rencontrer ce problème en utilisant VS 2013 après avoir renommé un projet. La réponse de Stanley m'a guidé vers la solution:

Fermez VS - supprimez le fichier .suo - redémarrez VS.

AndreasV
la source
1
Je peux me tromper, mais je ne pense même pas avoir vu le fichier .SUO, jusqu'à ce que je ferme VisualStudio.
Michael R
5
Je veux juste ajouter - il est impératif que vous fermiez VS avant de le supprimer. Supprimer le fichier alors que VS est toujours ouvert, puis fermer et rouvrir n'a aucun effet. Doit fermer en premier!
wizloc
23

Supprimez le fichier .suo d'une manière spéciale.

  1. N'ouvrez pas la solution lorsque vous supprimez le fichier .suo caché.
  2. Redémarrez VisualStudio.
  3. Ouvrez la solution et ajoutez un projet sans message d'erreur.
Mikhael Loo
la source
A travaillé pour moi Visual Studio 2019. Seulement que vous supprimez le .vsdossier caché
user919426
11

TFS fonctionne comme la plupart des paquets de contrôle de source: il se souvient de ce qu'il a mis sur votre ordinateur de sorte que lorsque vous "Get Latest", il n'a qu'à récupérer les chnages depuis votre dernier "Get" au lieu d'avoir à tout obtenir.

Ceci a une mise en garde: si vous supprimez ou renommez les fichiers locaux sur votre disque, TFS ne saura pas que vous avez fait cela, et il pensera toujours qu'ils sont là où ils les ont laissés.

Si vous "Get Latest", cela ne prendra pas la peine de mettre à jour les fichiers manquants.

Vous êtes alors susceptible d'obtenir toutes sortes d'erreurs de "fichier manquant", de TFS et de tout autre outil qui recherche les fichiers.

Pour le contourner, vous devez:

  • Si vous pensez avoir des modifications que vous ne voulez pas perdre, copiez le dossier source sur votre PC en tant que sauvegarde au cas où!
  • Faites un clic droit sur le projet (dans l'Explorateur de solutions) ou le dossier (dans le contrôle de code source)
  • Choisissez "Obtenir une version spécifique" dans le menu contextuel
  • Choisissez d'obtenir la "dernière version" et cochez l'option qui dit (quelque chose comme) "forcer l'obtention des fichiers déjà dans votre espace de travail", qui dit à TFS d'oublier ce qu'il "sait" et de récupérer tous les fichiers de toute façon.

Si vous avez des fichiers modifiés localement (inscriptibles), soyez prudent. Il existe une deuxième option qui les écrasera, perdant vos modifications. Mais vous avez la sauvegarde, vous devriez donc être en sécurité. Il est généralement préférable de cocher également cette option pour vous assurer que tout votre code source est complètement à jour. (Mais évidemment seulement si cela ne vous dérange pas de perdre des changements locaux!)

Lorsque vous avez OK, cela obtiendra de force tous les fichiers du projet sur votre lecteur local et devrait corriger le problème.

Jason Williams
la source
J'ai fait "obtenir la version spécifique" et vérifié "écraser tous les fichiers même si le serveur de correspondance local". aucune erreur, mais rien n'est entré. J'ai vérifié à partir d'un autre ordinateur et le projet est dans TFS et l'autre personne peut bien travailler dessus.
sineas
BTW mon dossier source local est complètement VIDE. Il n'y a rien dedans. J'ai supprimé tous les fichiers au départ afin de pouvoir en obtenir tous les nouveaux. comme ouvrir un tout nouveau projet.
sineas
1
Dans ce cas, la prochaine chose que je vérifierais serait le mappage de votre espace de travail. Dans Team Explorer, double-cliquez sur l'icône Contrôle de code source et en haut de la fenêtre qui apparaît se trouve une zone de liste déroulante. Déposez-le et choisissez "ajouter / modifier des espaces de travail". Modifiez votre espace de travail et vérifiez que le projet TFS contenant votre code a un dossier correspondant sur votre disque dur local. Et assurez-vous que vous regardez ce dossier lorsque vous essayez de charger la solution. (Indice: comparez votre configuration à celle de l'autre développeur qui essaie de localiser la source du problème)
Jason Williams
9

Bien que ce soit un défaut VS bien connu, nous pouvons certainement le gérer!

  • Ouvrez le fichier de solution en mode édition

  • Modifiez le chemin relatif pour qu'il corresponde au chemin physique modifié / déplacé.

    SccProjectUniqueName1 = Source\\Order\\Order.csproj
    SccProjectName1 = Order.ApplicationService
    SccLocalPath1 = Order.ApplicationService
    
  • En outre, s'assurer du chemin relatif correct pour le (s) projet (s) référent

    Project("{asdasd-301F-11D3-BF4B-asdasd}") = "Order",
            "Source\Order\Order.csproj", "{E25641BC-C990-40E2-8876-08AE8728F763}"
    EndProject
    
Sandeep talabathula
la source
6

Essayez d'ouvrir le .csproj ou .vbproj au lieu du .sln. Ce qui s'est probablement passé, c'est que le fichier .sln (solution) a une référence de fichier absolue (au lieu d'un chemin relatif) vers le (s) projet (s) composant (s). Vous devrez peut-être recréer le .sln ou le modifier manuellement.

Lilith River
la source
J'ai essayé d'ouvrir le fichier .vbproj et c'est ce que j'obtiens. "Le fichier sélectionné ne peut pas être ouvert en tant que solution ou projet. Veuillez sélectionner un fichier de solution ou un fichier de projet" veuillez également indiquer comment recréer le fichier .sln. Je suis nouveau dans ce domaine. merci
sineas
Merci! A ouvert les fichiers csproj, à la sortie, il a demandé de créer / enregistrer un nouveau fichier .sln et a écrasé l'ancien!
Rafael
5

L'option la plus simple à trouver pour moi est:

  1. Faites un clic droit sur le projet et supprimez le projet "non chargé" ou "indisponible"
  2. Cliquez avec le bouton droit sur la solution et ajoutez "Projet existant"
Arun Vinoth
la source
J'ai essayé cela mais toujours la même erreur, je ne supporte pas cette erreur stupide (vraiment un bug, je ne peux pas accepter ce genre de bug méchant, extrêmement déroutant).
Hopeless
1
Simple et direct ... compris.
Sarath Mohandas le
3

Dans mon cas, la suppression du fichier .suo était insuffisante. J'ai découvert que la configuration de mon espace de travail comportait une erreur. J'ai découvert et résolu le problème avec ces étapes:

  1. Dans Team Explorer, "Gérer les espaces de travail ..."

    entrez la description de l'image ici

  2. Cliquez sur "Modifier ..."

    entrez la description de l'image ici

  3. Corrigez la valeur sous "Dossier local"

    entrez la description de l'image ici

  4. Enfin, supprimez les fichiers .suo concernés par la réponse acceptée.

Chris Schiffhauer
la source
2

J'ai trouvé plus simple de créer un nouveau fichier SLN Solution.

David
la source
1

Effacez les mappages de votre espace de travail (Fichier -> Contrôle de source -> Espaces de travail). Modifiez l'espace de travail et effacez tous les mappages (plus de répercussions) ou recherchez celui qui est associé à ce chemin de serveur. Ensuite, ouvrez l'explorateur de contrôle de source et remappez. Double-cliquez sur le SLN dans l'explorateur de contrôle de source et il devrait être le plus récent. Je ne sais pas tout à fait ce qui s'est passé ou dans quel état vous avez réussi à entrer, mais cela devrait vous faire bouger à nouveau.

Ryan Cromwell
la source
1

J'ai rencontré ce problème et j'ai pu le résoudre en obtenant les .rptprojfichiers d'un collègue et en les copiant dans mon répertoire local. Le projet a ensuite pu se recharger.

Sayward
la source
1

J'ai passé beaucoup de temps à essayer de résoudre ce problème. J'ai fait ces étapes: renommer le projet, renommer les espaces de noms, renommer le dossier du projet, modifier le fichier .sln, modifier le fichier .suo caché. Projet chargé mais méconnaissable pour TFS! Enfin j'ai trouvé ce guide .

Si vous utilisez Resharper et que TFVC est votre contrôle de version, procédez comme suit:

  • Cliquez avec le bouton droit sur le projet dans l'Explorateur de solutions, sélectionnez Renommer et entrez le nouveau nom

  • Cliquez à nouveau avec le bouton droit sur le projet et sélectionnez Propriétés. Modifiez le "Nom de l'assembly" et "Espace de noms par défaut" dans l'onglet Application.

  • Cliquez à nouveau avec le bouton droit sur le projet et sélectionnez Refactoriser -> Ajuster les espaces de noms. Acceptez les modifications.

  • Modifiez le AssemblyTitle et le AssemblyProduct dans Properties / AssemblyInfo.cs

  • Supprimer les répertoires bin et obj dans l'Explorateur Windows

  • Ouvrez l'explorateur de contrôle de code source et renommez le répertoire du projet. Cela fermera la solution. Qu'il soit fermé.

  • Ouvrez le fichier SLN (avec un éditeur de texte tel que Notepad ++) et modifiez le chemin d'accès au projet (il doit y avoir plusieurs emplacements).

  • Ouvrez à nouveau la solution. Nettoyez et reconstruisez le projet.

abdos
la source
0

Cliquez avec le bouton droit sur le projet indisponible et modifiez le fichier du projet ... Il y a de fortes chances que vous trouviez un chemin de fichier codé en dur ou un chemin virtuel qui ne correspond pas à l'endroit où vous avez extrait le projet.

La gentillesse,

Dan

Daniel Elliott
la source
2
n'ont pas l'option Modifier. son seul projet de rechargement, couper et supprimer.
sineas
0

Solution pour cela

  1. Renommez à nouveau le dossier du projet
  2. Définir une version spécifique et forcer l'entrée dans TFS
  3. supprimer l'option lecture seule et masquée dans le dernier dossier (pas celui de renommer)
  4. Vous pouvez maintenant ouvrir le projet sans aucun problème
Saman Jayatilake
la source
0

Parfois, même si vous avez changé .slnet .csprojchemin, et renommer manuellement, vous pouvez oublier de vérifier le nom du dossier qui contient le projet.

SMPH
la source