2010-06-07 4 views
6

Ich habe eine große .sln-Datei mit vielen Projekten.Visual Studio baut alles auf

Ich habe gerade eine Änderung in Projekt A und es baut neun andere Projekte, die A-Referenzen, aber das hatte keine Codeänderung.

Gibt es einen Trick, um diesen Prozess zu beschleunigen?

+0

Die Art, wie Sie dies angeben, scheint eindeutig ein Fehler zu sein. Wenn sich _A_ ändert, hängen Projekte _A_ davon ab, dass sie nicht neu aufbauen sollen, sondern nur Projekte, die von _A_ abhängen. In früheren Versionen von VS habe ich gesehen, dass dies passierte, wenn benutzerdefinierte Build-Schritte einbezogen wurden. – sbi

Antwort

2

Teilen und erobern: Beschränken Sie den Zeitaufwand für die Erstellung Ihrer Lösung, indem Sie zusätzliche Lösungen erstellen, die logische Teilmengen von Projekten enthalten, an denen Sie gerade arbeiten. Dies begrenzt Ihren Umfang und wird Builds beschleunigen.

Siehe Die partitionierten Einzel Solution Model in diesem MSDN-Artikel: http://msdn.microsoft.com/en-us/library/ee817674.aspx

Key Zitat aus dem Artikel:

Separate solution files allow you to work on smaller subsystems within your overall system 
but retain the key benefits of project references. Within each subsolution file, 
project references are used between constituent projects. 
+0

Also, diese Methode würde Sie erstellen eine Lösung mit einem Projekt (Projekt A in diesem Beispiel), die einfach auf die DLLs aus allen anderen Projekten anstelle aller anderen Projekte verweist? Wenn Sie ein Build erstellen, kompilieren Sie nur ein Projekt neu. – wcm

+0

Nicht unbedingt nur ein Projekt, aber möglicherweise. –

1

Wählen Sie "Nur Build", wenn Sie mit der rechten Maustaste auf das Projekt A klicken. Ich bin mir nicht sicher, ob es eine Möglichkeit gibt, das Erstellen referenzierter Projekte beim Erstellen der Lösung zu verhindern (was der Standardbefehl "build" tut).

0

Stellen Sie sicher, dass Ihre Projektabhängigkeiten korrekt sind. Klicken Sie mit der rechten Maustaste auf das Projekt und gehen Sie zu "Projektabhängigkeiten". Stellen Sie sicher, dass jedes Projekt nur von den wenigen anderen Projekten abhängig ist, die zum Verknüpfen benötigt werden.

0

Eine andere Sache zu suchen, weil es nur mir passiert ist, ist Wenn Sie Ihre Ansicht unter Verwendung von ClearCase synchronisieren, während Ihre Lösung geöffnet ist und ein Teil Ihres Codes durch die Synchronisierung aktualisiert wurde, werden die Zeitstempel manchmal falsch auf den Dateien festgelegt. Daher wird davon ausgegangen, dass Ihre Quelldateien geändert und Ihr Projekt jedes Mal kompiliert wurde .

Um dies zu beheben, musste ich die Lösung schließen und erneut öffnen, und es verhielt sich wie erwartet.

2

Das passiert, wenn ein Projekt eine Datei hat, die nicht wirklich existiert.
Das Projekt kann nicht feststellen, ob die Datei geändert wurde (weil sie nicht vorhanden ist), sodass sie neu erstellt wird.

Sehen Sie sich einfach alle Dateien im Projekt an und suchen Sie nach dem Projekt, das in der Nähe keinen erweiterbaren Pfeil enthält.

+0

Erweiterbarer Pfeil? Ist das nicht nur für GUI-Klassen (z. B. Windows Forms) und ähnliche zusammengesetzte Sachen? In einem meiner Projekte/Lösungen habe ich viele CS-Dateien (die alle existieren), die eigenständige einfache Klassen enthalten, und sie haben keinen Pfeil. –

0

Ändern Sie die Ausführlichkeit der Build-Ausgabe in detaillierte und sehen Sie, was es oben sagt. In meinem Fall sagte es mir, das Projekt sei wegen einer fehlenden Datei nicht auf dem neuesten Stand.

+0

Wie änderst du die Ausführlichkeit der Build-Ausgabe in Detail? –

+0

Eine Möglichkeit besteht darin, [menu * Werkzeuge * → * Optionen * → * Projekte und Lösungen * → * Build und Ausführen * → * MSBuild Projekt Build-Ausgabe Ausführlichkeit * zu *** "Diagnose" ***] (https: //Paketüberfluss.com/questions/1211841/how-can-i-make-visuelle-studios-build-be-sehr-verbose/1211886 # 1211886). –