web-dev-qa-db-ger.com

Visual Studio bleibt während des Builds ständig hängen

Wahrscheinlich zwischen 25 und 50% der Fälle, in denen ich meine Lösung baue, sehe ich Folgendes:

" Die von Ihnen angeforderte Operation dauert länger als erwartet. Dieser Dialog wird geschlossen, wenn die Aktion abgeschlossen ist. "

Ich hasse dieses Fenster auf eine Weise, die ich nicht beschreiben kann. Es löst sich nie auf, der Abbrechen-Button ist nie aktiviert, und der einzige Weg, Abhilfe zu schaffen, besteht darin, den Devenv-Prozess abzubrechen und meine gesamte Lösung erneut zu laden das Gleiche, wenn ich versuche, zu bauen.

Meine Lösung umfasst insgesamt etwa 60 Projekte, bei denen es sich hauptsächlich um C # -Klassenbibliotheken mit jeweils wenigen Webanwendungen, Webservices und Konsolenanwendungen handelt. Das Problem bleibt jedoch bestehen, auch wenn ein Teil der Codebasis mit der Mehrheit (50) der entladenen Projekte erstellt wird.

Mein Problem ist, dass mir das Ausgabefenster an dem Punkt nichts sagt, an dem es einfriert, und ich weiß nicht, wie ich die Ursache für diese Blockierung feststellen kann. Wenn ich raten würde, würde ich davon ausgehen, dass dies ein Deadlock im Dateisystem oder so ist, aber ich weiß nicht, wie ich das beweisen soll - geschweige denn, wie man es verhindern kann.

Was kann ich tun, um dies zu diagnostizieren und aus meiner Lösung zu entfernen, damit ich es nie wieder sehen kann? Wie kann ich generell Probleme diagnostizieren, die während eines Builds auftreten?

47
bwerks

Hätte ein ähnliches Problem, würde VS etwa 45 Sekunden lang hängen bleiben, dann 4 Sekunden bauen und die Installation abschließen. Die 45 Sekunden des Hangens würden keine Ausgabe an die GUI erzeugen und VS würde hängen.

Mit ProcMon konnte ich über devenv.exe mehr als 3 Millionen Dateivorgänge im Ordner/packages/sehen, wenn ich dieses Projekt erstellen würde (und danach noch einige Zeit weiterarbeiten würde) !! In den ersten Schritten des Builds können Sie sehen, dass EVERY PACKAGE dahingehend geprüft wurde, ob eine Paketwiederherstellung erforderlich war (nicht).

Da ich NuGet für alles verantwortlich mache, habe ich Nuget Package Restore deaktiviert. Aktivieren Sie das Kontrollkästchen "NuGet können fehlende Pakete herunterladen" unter Visual Studio -> Optionen -> Nuget Package Manager -> General . Zu meiner Freude war der Aufbau sehr schnell. 5 Sekunden insgesamt! 

Es stellte sich heraus, dass wir die Wiederherstellung von Paketen beim Build aktiviert hatten (ich glaube, dies ist jetzt standardmäßig in VS aktiviert) UND wir haben auch die Pakete in der Quellcodeverwaltung überprüft. Es hat den Anschein, dass dies dazu führt, dass TFS auf irgendeine Weise zum Thrash wird. Das Überprüfen auf Wiederherstellen des Pakets muss TFS dazu veranlassen, einige Quellsteuerungsoperationsprüfungen durchzuführen.

Zu Ihrer Information war dies VS2013 UPDATE 4 - Nuget-Version: 2.8.50926.663 .. auf einem sln mit NumberOfProjects = 38, aber ich könnte diesen Hang neu erstellen, indem Sie einfach einen einzelnen csproj mit 2 Abhängigkeiten erstellen.

Aktualisieren: 

Localhost "Rebuild All" auf Sln mit SccNumberOfProjects = 53 benötigte 7:05 Minuten, wobei das visuelle Studio 2 Minuten eingefroren/nicht mehr reagierte

  • auf 4:14 auf einem 2-Core-i5 ohne Einfrieren
  • auf 2:44 auf einem 4-Core-i7

Außerdem: Dies war auf einer Maschine mit verschiedenen Sicherheitstools für File Watcher, die dem gesamten Prozess wahrscheinlich keine Geschwindigkeit hinzufügte ... und möglicherweise Schuld daran war.

49
felickz

Ich habe gesehen, dass dies bei großen Projekten der Fall ist, wenn MSBuild mit eingeschaltetem Diagnoseschalter ausgeführt wird. Wechseln Sie in Visual Studio zu Extras/Optionen/Projekte/Lösungen/Build And Run. Überprüfen Sie dann den Ausgabebosity-Wert des MSBuild-Projekts. Wenn nicht "Minimal" eingestellt ist, versuchen Sie, "Minimal" einzustellen, und prüfen Sie, ob Ihre Builds abgeschlossen werden können.

13
Pat P

Scheint so, als wenn Sie Visual Studio als Administrator ausführen, löste ich das Problem! (Informationen zum Ausführen eines Programms als Administrator finden Sie unter So führen Sie Visual Studio standardmäßig als Administrator aus )

6
IngoB

Ich habe festgestellt, dass Visual Studio viel davon abhängt, größere Projekte zu erstellen. Es stellte sich heraus, dass es ReSharper war. Nachdem ich es ausgeschaltet habe: Tools -> Optionen -> ReSharper -> Suspend Now, alles gut gebaut, keine Probleme (auch bei sehr großen Lösungen, 100+ Projekten)

4
the_doc

Es gab einen Vorschlag in Microsoft Connect , dass das Modeling-Projekt für das Einfrieren verantwortlich war. Ich habe ein Modellierungsprojekt aus unserer Lösung entfernt und habe seitdem (etwa eine Woche) kein Einfrieren erlebt.

3
st-dev

In meinem Fall hat die Einstellung von "Maximale Anzahl paralleler Projekterstellungen" auf 1 ein bisschen geholfen (d. H. Das Erstellen eines Projekts aus dem Clean-Zustand verursacht 1 Minute Einfrieren gefolgt von normaler Erstellung und jeder nachfolgende Aufbau funktioniert gut). 

Die oben genannte Einstellung kann in Tool -> Options -> Projects and Solutions -> Build and Run eingestellt werden.

3

Versuchen Sie es einfach mit dem Admin-Modus. Bevor Sie diesen Befehl ausführen, müssen Sie alle VS-Instanzen schließen. 

devenv /resetuserdata

Hinweis: devenv befindet sich unter C:\Programme (x86)\Microsoft Visual Studio 14.0\Common7\IDE

2

Für mich war es etwas mit npm Paketinstallation zu tun, das automatisch lief. Ich ging zu Extras> Optionen> Projekt und Lösungen> Externe Webtools, deaktivierte alle externen Tools und starte VS neu. Danach konnte ich es wieder bauen. Ich weiß, dass ich sie überprüfen muss, aber ich muss herausfinden, was sie auslöst und was mit dieser Lösungsdatei falsch ist.

1
PersyJack

Visual Studio 2017

Durch das Entfernen von Anaconda3 aus der Installation wurde das Problem behoben. In procmon sah ich Hunderttausende von Anrufen, die im Ordner Anaconda3 nach Dateien aus Hunderten von Powershells suchten, die von msbuild erzeugt wurden.

1
The Sharp Ninja

Neben der Antwort von felickz , die dieses Problem für Builds löst (oder fast löst):

Außer dem Problem während eines Builds hatte ich auch Probleme mit der Package Management Console. Es hat ungefähr eine Minute gedauert, bis darauf gewartet wurde. Mit dem procmon stellte ich fest, dass der NuGet-Repository-Ordner bei jedem Öffnen dieses Fensters analysiert wurde (sehr intelligent, Microsoft!). In diesem Ordner befanden sich etwa 1000 Pakete. Nachdem Sie alles aus dem obigen Ordner entfernt haben, hat sich das Leistungsproblem gewunden. 

Beachten Sie, dass sich meine Antwort auf das VS 2015 bezieht (und möglicherweise weiter unten ist). Ich habe nicht getestet, aber in VS 2017 vermutet, dass es in Ordnung sein sollte.

1
Kamarey

Für mich war das Problem eine Erweiterung, die automatisch T4-Vorlagen auf Build (AutoT4) ausführt. Wenn Sie es deaktivieren, wenn Sie mit Lösungen mit EF arbeiten, wurde das Problem behoben.

1
David Cholt

Ich habe meine VS 2008-Entwicklungsplattform von Windows 7 auf Windows 10 verschoben und bin auf eine Situation gestoßen, in der Visual Studio bei jedem Versuch, ein großes Projekt zu erstellen, aufgehängt hat. Ich musste das Projekt erstellen und dann mit dem Task-Manager VS beenden und neu starten. Unnötig zu sagen, dass dies das Debuggen wirklich schwierig machte! Das Problem bestand jedoch darin, dass VS bei der Umstellung auf Win 10 nicht mehr als Administrator ausgeführt wurde (und vielleicht handelt es sich bei Win 10 um spezielle Berechtigungen). Ändern der Eigenschaften, so dass das Programm als Administrator ausgeführt wurde, wurde das Problem behoben. (IngoB - Ich habe nicht genug Status, um einen Beitrag zu kommentieren, aber danke, dass du mich darauf aufmerksam gemacht hast!) 

0
Robert Cody