Sie sollten alte TFS-Workspace-Definitionen löschen, die von Continuous Integration Builds übrig geblieben sind.
Wir hatten das gleiche Problem mit einem großen Team Foundation Server-Projektbaum. Manchmal, aber nicht immer, würde das Öffnen einer Lösung in Visual Studio 2010 oder Visual Studio 2012 exakt so erfolgen, wie oben beschrieben. VS 2010 war am verletzlichsten; VS 2012 schien weniger anfällig, aber es würde immer noch hängen.
Wir konnten einige Hinweise erhalten, indem die Serveraktivität auf dem Server-Rechner TFS Überwachung und den zugrunde liegenden SQL Server-Computer. Eine bestimmte gespeicherte Abfrageprozedur verwendete in SQL Server zu lange CPU-Zeit. Wir haben diesen Namen für eine gespeicherte Prozedur in einer TFS-Operation nachverfolgt, die beim Scannen von TFS-Arbeitsbereichdefinitionen für das Auschecken anderer Dateien durch Benutzer verwendet wurde.
Unsere TFS-Umgebung wird seit über 3 Jahren verwendet, und wir verwenden Continuous Integration-Builddefinitionen mit einer "Zombie-Armee" von Entwicklerarbeitsstationen als TFS Build Agent-Hosts. Wir erstellen auch neue TFS-Zweige für Major-Releases. Jeder Zweig enthält etwa 20 separate Visual Studio-Lösungen mit eigenen Builddefinitionen.
Im Laufe der Zeit hatten wir über 2000 TFS Workspace-Definitionen auf jeden Entwickler-Workstation angesammelt. Wir hatten ungefähr 10 Arbeitsplätze gleichzeitig mit ihren eigenen Definitionen.
Mit dem Visual Studio Befehlsfenster und als TFS Administrator ausgeführt wird, haben wir diesen Befehl alle Arbeitsbereiche von unseren „bauen Benutzer“ erstellt identifizieren:
tf Workspaces/Sammlung: tfservername \ Sammlungsname/Besitzer: ourbuilduser > c: \ tf_ws_del.
bittet
Wir haben dann globalen Ersatz und Notepad ++ Makro-Editor Recorder jede Ergebniszeile in diese Form zu konvertieren:
tf Arbeitsplatz/Löschen/Sammlung: tfservername \ Sammlungsnamen workspace; ourbuilduser < c: \ yes.txt
wo C: \ yes.txt eine einzige Zeile von „y“ enthalten
Wir haben auch einige menschliche Beurteilung Workspaces Löschleitungen für unsere jüngsten TFS Zweig genannt zu entfernen.
Wir führten dann das c: \ tfs_ws_del.bat-Skript im selben Visual Studio-Befehlsfenster aus und warteten geduldig, bis es fertig war.
Endergebnis: Unsere Visual Studio-Lösungen öffnen sich sehr schnell. Selbst das Durchsuchen der Ordnerhierarchie im Quellcodeverwaltungs-Explorer hat sich erheblich beschleunigt.
Warnung: Die Löschvorgänge für eine sehr große Anzahl von Arbeitsbereichen erweitern möglicherweise die TempDB auf dem zugrunde liegenden SQL Server um einen großen Betrag. Koordinieren Sie mit Ihren DBAs, um Speicherplatz auf dem SQL Server-Computer zu überwachen. Durch das Stoppen und Neustarten der TFS-Sammlung über das grafische TFS-Verwaltungskonsole-Tool können Sie einen Teil dieses TempDB-Bereichs zurückerhalten und an die interne "freie Block" -Liste zurückgeben.
Run es im abgesicherten Modus zu sehen, ob es ein Add-In ist: 'devenv.exe/SafeMode' –
Sie können auch das Einschalten Protokollierung versuchen: denenv.exe/log –
@ ta.speeot.is - Wenn ich in laufen Sicherer Modus, ich kann mein Projekt nicht laden, da es abhängig von Erweiterungen ist, meine PHP-Entwicklung zu machen. – Shoeless