web-dev-qa-db-fra.com

Comment remettre ma solution dans Visual Studio en ligne dans TFS?

Ma solution dans Visual Studio 2012 (sous le contrôle de source TFS) était ouverte et le serveur TFS (2010) était en panne. Lorsque j’ai ensuite modifié un des fichiers et tenté de le sauvegarder, j’ai reçu une invite me demandant si je voulais écraser le fichier en disant que le serveur TFS était en panne (je ne me souviens pas des mots exacts) et le message suivant est apparu dans 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 faire en sorte que le changement de fichier soit reconnu comme faisant partie des modifications en attente et de la solution dans son ensemble en ligne?

229
Appulus

J'ai cherché la solution en ligne et trouvé cette solution mais je n'étais pas trop intéressé par le changement de registre.

J'ai trouvé un meilleur moyen: , cliquez avec le bouton droit de la souris sur le nom de la solution en haut de l'explorateur de solutions et sélectionnez l'option Go Online . En cliquant dessus, je pouvais sélectionner les fichiers qui avaient été modifiés lorsque j'étais hors ligne et remettre la solution en ligne.

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

482
Appulus

Renommez le fichier .SUO correspondant à la solution. Le fichier SUO contient le statut TFS (en ligne/hors ligne), parmi un hôte d'autres goodies.

Faites cela uniquement si le "clic-droit sur le nom de la solution en haut de l'explorateur de solutions et sélectionnez l'option de connexion en ligne" échoue (car vous avez par exemple installé l'aperçu VS2015).

9
Wolfgang Grinfeld

(Étape supplémentaire de la solution ci-dessus pour s'il vous manque la valeur de registre AutoReconnect ou Offline)

Pour Visual Studio 2015, version 14

  1. Désactiver toutes les instances de VS
  2. HKEY_CURRENT_USER\LOGICIEL\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 l'un de ces attributs manque (dans mon cas, il 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 supplémentaires: blog MSDN - Quand et comment ma solution est-elle mise hors ligne?

6
Ariella

Allez à File > Source Control > Go Online, sélectionnez les fichiers que vous avez modifiés et terminez le processus.

5

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 à la collection par défaut: HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\TeamFoundation\Instances\team32system1\Collections\DefaultCollection
  5. Définir la clé hors ligne sur 0
  6. Solution ouverte dans VS. Ensuite, une fenêtre contextuelle devrait apparaître pour indiquer quelle question souhaitez-vous apporter en mode en ligne?.
2
user3683748

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é l'édition de registre comme suggéré ici, mais cela m'a seulement montré l'erreur qu'il n'a pas pu trouver la liaison. Ce qui a fonctionné pour moi, c’est de relier la solution au serveur à partir du menu Modifier le contrôle de la source.

Accédez à 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), cliquez sur le bouton de liaison, la recherche sera automatiquement effectuée sur le serveur TFS en ligne et reliera votre solution.

1
Saad

Vous aurez besoin de faire deux étapes ici pour une solution complète

Cliquez d'abord sur la solution que vous avez ouverte, puis sélectionnez Fichier-> Contrôle de la source -> Go Online. Désélectionnez ensuite tous les fichiers affichés comme étant modifiés pendant que vous étiez hors ligne.

Ne faites pas la dernière version de Get depuis l'Explorateur de contrôle de code source. Cela se traduira par un dialogue potentiellement montrant un tas de fichiers vous demandant de résoudre les conflits. Au lieu de cela faire

Dans la source Control Explorer, cliquez avec le bouton droit de la souris sur le dossier dont vous souhaitez obtenir le dernier, puis sur Avancé - Obtenir une version spécifique. Dans le menu déroulant pour le type de version, choisissez Dernière, puis cochez la première case intitulée Remplacer les fichiers inscriptibles qui ne sont pas extraits. Cela synchronisera automatiquement votre dossier avec les plus récents sur le serveur.

0
Abhijit Vyas

j'ai trouvé un autre moyen sans trop d'effort.

Cliquez simplement avec le bouton droit de la souris sur votre solution, puis sur Annuler les modifications en attente.

Ensuite, VS vous demandera un fichier réellement modifié dans lequel vous souhaitez annuler ou non un fichier spécifique.

En cela, vous pouvez cliquer sur non pour un tel fichier où le changement réel est effectué, le reste annulé. Cela ne perdra pas vos modifications réelles

0
Jay Magwadiya