Comment puis-je récupérer ma solution dans Visual Studio en ligne dans TFS?

J’ai eu ma solution dans Visual Studio 2012 (qui est sous contrôle de code source TFS) ouverte et le serveur TFS (2010) était en panne. Lorsque j’ai ensuite apporté une modification à l’un des fichiers et que j’ai tenté de l’enregistrer, j’ai reçu une invite me demandant si je voulais écraser le fichier en disant que le serveur TFS était inactif (je ne me souviens plus des mots exacts). la fenêtre de sortie:

This solution is offline. [Team Foundation Server: http://tfs1:8080/tfs/server] The solution was offline during its previous session and will remain offline. 

Comment puis-je faire en sorte que le changement de fichier soit reconnu comme faisant partie des modifications en attente et que toute la solution soit remise en ligne?

J’ai cherché la solution en ligne et j’ai trouvé cette solution, mais je n’étais pas très enthousiasmé par le changement de registre.

J’ai trouvé un meilleur moyen: faites un clic droit sur le nom de la solution en haut de l’explorateur de solutions et sélectionnez l’option Go Online . En cliquant sur ce bouton, j’ai pu sélectionner les fichiers qui avaient été modifiés lorsque j’étais hors ligne et rétablir la solution en ligne.

Après avoir trouvé la solution, j’ai trouvé le fil de discussion suivant, qui confirmait ce qui précède.

Renommez le fichier .SUO correspondant de la solution. Le fichier SUO contient le statut TFS (en ligne / hors ligne), parmi une foule d’autres goodies.

Ne le faites que si le “clic droit sur le nom de la solution en haut de l’explorateur de solutions et sélectionnez l’option Go Online” échoue (par exemple, vous avez installé l’aperçu VS2015).

(Etape supplémentaire de la solution ci-dessus si vous manquez la valeur de Registre AutoReconnect ou Offline)

Pour Visual Studio 2015, version 14

  1. Désactiver toutes les instances VS
  2. HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ VisualStudio \ 14.0 \ TeamFoundation \ Instances {YourServerName} \ Collections {TheCollectionName} (Pour accéder à ce répertoire sous Windows, appuyez sur la touche Windows + R et recherchez “regedit”)
  3. Définissez les valeurs Offline et AutoReconnect sur 0.
  4. Si vous manquez l’un de ces atsortingbuts (dans mon cas, il me manquait AutoReconnect), cliquez avec le bouton droit de la souris et créez une nouvelle valeur DWORD (32 bits) avec le nom manquant souhaité, AutoReconnect ou Offline.
  5. Encore une fois, assurez-vous que les deux valeurs sont définies sur zéro.
  6. Redémarrez votre solution

Informations complémentaires: blog MSDN – Quand et comment ma solution est-elle déconnectée?

Vous pouvez aller utiliser l’éditeur de registre.

  1. Désactivez toutes les instances de VS.
  2. Ouvrez l’éditeur de registre et accédez à: HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 11.0 \ TeamFoundation \ Instances
  3. Trouvez le serveur approprié, par exemple: team32system1
  4. Accédez à Collection et à default DefaultCollection: HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 11.0 \ TeamFoundation \ Instances \ team32system1 \ Collections \ DefaultCollection
  5. Définir la touche hors ligne sur 0
  6. Solution ouverte dans VS. Ensuite, une fenêtre contextuelle devrait apparaître, laquelle vous souhaitez apporter une solution au mode en ligne.

Aucune des solutions ci-dessus n’a fonctionné pour moi sur Visual Studio Community 2017 v15.7.1. D’une manière ou d’une autre, il n’y avait pas d’option “Go Online” dans le menu contextuel. J’ai essayé de modifier le registre comme suggéré ici, mais cela ne me montrait qu’une erreur, à savoir qu’il ne pouvait pas trouver la liaison. Ce qui a fonctionné pour moi, c’est de relier la solution au serveur à partir du menu Change Source Control.

Allez dans File->Source Control->Advanced->Change Source Control et assurez-vous que votre solution est liée à votre contrôle de code source. Si ce n’est pas le cas (comme le mien), alors cliquez sur le bouton de liaison, il recherchera automatiquement le serveur en ligne de TFS et reliera votre solution.