LazowskiAnton · Extensions

BuildSmith

Was Ihr Build getan hat und warum er so lange dauerte. Nach jedem Build zeigt die Statusleiste seine Zeit und die Änderung gegenüber dem vorherigen; das Fenster Build-Zeitachse zeigt jedes Projekt auf einer Zeitachse – welche parallel liefen, welche warteten und den kritischen Pfad, der die Gesamtzeit bestimmt hat.

Kostenlos · Visual Studio 2022 und 2026 · 14 UI-Sprachen · keine Telemetrie

Warum BuildSmith

Das Fenster „Build-Zeitachse“: Ergebnis und Zeit des Builds gegenüber dem vorherigen, ein Balken pro Projekt in der Reihenfolge ihres Starts, der kritische Pfad orange umrandet

Wohin die Zeit ging

Das Ausgabefenster sagt, dass der Build 1 min 48 s gedauert hat. Die Zeitachse sagt, welche Projekte diese Zeit brauchten, welche davon nebeneinander liefen und auf welche Kette von Projekten der ganze Build warten musste.

Verglichen mit einem gleichartigen Build

Ein Debug-Build auf main wird mit dem vorherigen Debug-Build auf main verglichen – nicht mit einem Neuerstellen, einem Release-Build oder einem anderen Branch. Deshalb bedeutet ▲ 4.1 s auch etwas.

Unauffällig

Kein Fenster öffnet sich von selbst, nichts springt auf: eine Zeile in der Statusleiste nach dem Build. Ist die Aufzeichnung aus, schläft BuildSmith wirklich – es hört nicht einmal auf Build-Ereignisse.

Kostenlos, ohne Haken

Kein Abo, keine „Pro“-Version, keine Datensammlung, keine Meldungen im Ausgabefenster oder beim Start. Der Verlauf bleibt auf Ihrem Computer. Das Einzige, worum wir je bitten werden – nachdem Sie es eine Weile genutzt haben –, ist eine Bewertung im Marketplace. Läuft unter Visual Studio 2022 und 2026, x64 und ARM64.

Funktionen

Der Build auf einen Blick

Öffnen Sie Erstellen › Build-Zeitachse (auch unter Ansicht › Weitere Fenster und in der Symbolleiste SmithWorks). Das Fenster zeigt den letzten Build – oder einen beliebigen aus dem Verlauf – mit einer Zusammenfassung oben und einem Balken pro Projekt darunter.

Das Fenster „Build-Zeitachse“: die Kopfzeile mit Ergebnis, Zeit und Änderung, darunter die Projekte auf einer Zeitachse mit umrandetem kritischem Pfad, schraffierten aktuellen Projekten und einer QuickInfo

Die Zeit in der Statusleiste

Nach jedem Build zeigt die Statusleiste von Visual Studio seine Zeit und die Änderung gegenüber dem vorherigen vergleichbaren Build: ⏱ 1 min 48 s (▲ 4.1 s) – ▲ langsamer, ▼ schneller. Das ist das Einzige, was BuildSmith von sich aus anzeigt, und es lässt sich in den Einstellungen abschalten.

Vergleichbar heißt: dieselbe Art von Build (Erstellen oder Neu erstellen), dieselbe Konfiguration, dieselbe Plattform und derselbe Git-Branch. Gibt es noch keinen solchen Build, wird nur die Zeit angezeigt.

Die Kopfzeile

Oben im Fenster wird der angezeigte Build zusammengefasst:

AnzeigeBedeutung
✓ 1 min 48 s  ▲ 4.1 s ggü. vorherigemDas Ergebnis (erfolgreich oder fehlgeschlagen), die Gesamtzeit und ein Badge mit der Änderung gegenüber dem vorherigen vergleichbaren Build; seine QuickInfo sagt, wie lange jener Build dauerte und wann er lief.
14 Projekte · 9 erstellt · 5 aktuell · 1 fehlgeschlagenWie viele Projekte beteiligt waren, wie viele tatsächlich erstellt wurden, wie viele als aktuell übersprungen wurden und wie viele fehlschlugen.
kritischer Pfad 1 min 31 s · Debug · Any CPU · mainDie Länge des kritischen Pfads, dann Konfiguration, Plattform und Git-Branch des Builds.
Die Build-AuswahlJeder aufgezeichnete Build der Projektmappe: Die Zeitachse wechselt zu ihm.
🏷 ⏻ ⚙🏷 beschriftet den angezeigten Build, ⏻ schaltet die Aufzeichnung ein oder aus, ⚙ öffnet die Einstellungen.

Die Balken

AnzeigeBedeutung
Blauer BalkenEin Projekt, das erstellt wurde, eine Zeile pro Projekt in der Reihenfolge ihres Starts: Der Balken beginnt dort, wo das Projekt nach Buildstart tatsächlich begann, und ist so lang, wie es dauerte. Überlappende Balken liefen parallel – so sehen Sie, wie parallel der Build wirklich war.
Orange UmrandungDer kritische Pfad: die Kette von Projekten, von denen jedes auf das vorherige wartete und die die Gesamtzeit bestimmt hat. Wird eines davon schneller, wird der Build schneller; die übrigen Projekte liefen nebenher.
Schraffierter StummelAktuell: übersprungen, nichts darin hat sich geändert.
Roter BalkenDas Projekt konnte nicht erstellt werden.
▲ 2.4 sNeben jedem Balken: seine Zeit und – falls nennenswert – die Änderung gegenüber demselben Projekt im vorherigen vergleichbaren Build.

Zeigen Sie auf einen Balken, um Details zu sehen: wie lange das Projekt dauerte, von wann bis wann nach Buildstart, die Änderung gegenüber dem vorherigen Build und ob es auf dem kritischen Pfad lag.

Das Fenster kann beim Arbeiten offen bleiben: Es wechselt von selbst zu jedem neuen Build. Oben befinden sich die Registerkarten Zeitachse, Vergleich und Verlauf.

Nie aktuell

Manche Projekte werden bei jedem Build erstellt, auch wenn sich darin nichts geändert hat. Jedes Mal kostet das ein paar Sekunden, und niemand merkt es. BuildSmith schon: Über der Zeitachse eines inkrementellen Builds sagt ein Streifen, wie viele solcher Projekte es gibt und was sie pro Build kosten. Aufgeklappt zeigt er die Liste der Projekte; ihre Zeilen auf der Zeitachse erhalten das Zeichen ⟳.

Ein Streifen über der Zeitachse: 3 Projekte sind nie aktuell, 6.4 s pro Build; die Liste der Projekte und die üblichen Ursachen

Die Regel: Ein Projekt wird hervorgehoben, wenn es in jedem der letzten 3 bis 5 inkrementellen Builds derselben Konfiguration und desselben Branches erstellt wurde, während mehr als die Hälfte der Projektmappe aktuell war. Neuerstellungen zählen nicht – dort wird absichtlich alles erstellt.

Die üblichen Ursachen:

Wer das behebt, spart diese Zeit bei jedem Build. Der Streifen lässt sich in den Einstellungen abschalten: Projekte hervorheben, die nie aktuell sind.

Verlauf

Die Registerkarte Verlauf listet die aufgezeichneten Builds der Projektmappe auf, die neuesten zuerst, nach Tagen gruppiert. Jede Zeile zeigt Uhrzeit, Art des Builds, Konfiguration und Branch, die Beschriftung und einen Balken proportional zur Buildzeit – ein langsamer Build fällt sofort auf.

Die Registerkarte „Verlauf“: ein Suchfeld, Zeiträume, angekreuzte Builds, Beschriftungen, Balken proportional zur Buildzeit und das Kontextmenü

Einen Build finden

Tippen Sie ins Suchfeld – jedes Wort muss in der Beschriftung, im Branch, in der Konfiguration oder in der Art des Builds vorkommen. Grenzen Sie den Zeitraum mit Heute, Gestern und heute, 7 Tage oder Alle ein, oder wählen Sie Daten im Kalender (Zeitraum…). Nur beschriftete lässt nur die Builds übrig, die Sie beschriftet haben.

Öffnen, beschriften, behalten, löschen

Klicken Sie auf einen Build (oder drücken Sie Enter), um ihn auf der Zeitachse zu öffnen. Per Rechtsklick gibt es In Zeitachse öffnen, Beschriften…, Behalten (nie löschen) und Löschen. Die Taste Delete löscht den Build, mit Rückgängig für ein paar Sekunden. Das Menü ⋯ löscht Builds, die älter als ein Datum sind, oder leert den Verlauf dieser Projektmappe oder aller Projektmappen.

Kreuzen Sie Builds an, um sie zu vergleichen oder mehrere auf einmal zu löschen. Beschriftete ankreuzen kreuzt jeden angezeigten Build an, der eine Beschriftung hat – der schnellste Weg, „vorher“ und „nachher“ zu vergleichen.

Wie lange Builds aufbewahrt werden

Builds werden nur auf diesem Computer aufbewahrt, in %LocalAppData%\BuildSmith, ein Verlauf pro Projektmappe – 1 Tag, 3 Tage, 1 Woche (Standard), 2 Wochen oder 1 Monat lang. Ältere Builds werden gelöscht, wenn die Projektmappe geöffnet wird oder ein Build endet. Beschriftete und behaltene Builds bleiben, egal wie alt sie sind.

Beschriftungen

🏷 in der Kopfzeile (oder Beschriften… im Menü des Verlaufs) gibt einem Build einen kurzen Text und eine Farbe: eine von fünf oder eine eigene aus einer kleinen Auswahl mit Palette und zuletzt verwendeten Farben. Zuletzt verwendete Beschriftungen werden mit einem Klick wieder angeboten, sodass eine Reihe von Builds dieselbe Beschriftung tragen kann.

Ein beschrifteter Build wird nie wegen seines Alters gelöscht (außer Sie schalten Beschriftete Builds behalten aus). Behalten (nie löschen) hält einen Build auch ohne Beschriftung fest.

Aufzeichnung

⏻ in der Kopfzeile legt fest, ob Builds aufgezeichnet werden:

AuswahlWas passiert
Builds aufzeichnenDer Standard: Jeder Build wird gemessen und im Verlauf aufbewahrt.
Nicht für diese ProjektmappeDiese Projektmappe wird nicht mehr aufgezeichnet, andere weiterhin. Die Einstellungen listen solche Projektmappen auf, mit Wieder aufzeichnen.
Überall ausBuildSmith schläft in jeder Projektmappe.

Im Schlaf tut BuildSmith wirklich nichts: Es abonniert keine Build-Ereignisse und schreibt nichts in die Statusleiste oder auf die Festplatte. Der Verlauf bleibt erhalten, und das Fenster bietet Builds wieder aufzeichnen an.

Builds vergleichen

Die Registerkarte Vergleich stellt Builds nebeneinander: Hat der Fix geholfen, welches Projekt wurde nach dem Update langsamer, wie entwickelte sich die Buildzeit über die Woche.

Die Registerkarte „Vergleich“: Build-Chips, der Trend der Buildzeiten und eine Tabelle Projekte × Builds mit farbigen Änderungen, Sparklines und dem kritischen Pfad

Die Builds auswählen

Kreuzen Sie auf der Registerkarte Verlauf 2 bis 10 Builds an und klicken Sie auf ⇄ N vergleichen. Ohne angekreuzte Builds vergleicht die Registerkarte Vergleich den angezeigten Build mit dem vorherigen vergleichbaren. Die Builds erscheinen oben als Chips; ✕ nimmt einen aus dem Vergleich heraus.

Der Trend und die Tabelle

Ein kleines Diagramm zeigt die Gesamtzeit jedes Builds. Darunter eine Tabelle Projekte × Builds: Jede Zelle ist nach der Änderung gegenüber dem ersten Build eingefärbt – wärmer ist langsamer, grün ist schneller – mit Sparkline, Änderung und ●, wo das Projekt auf dem kritischen Pfad lag. Projekte ohne deutliche Änderung sind unter … N weitere ohne deutliche Änderung zusammengefasst.

Nur die Projekte, die Sie interessieren

Projekte: … filtert die Tabelle: Alle Projekte (N), Deutlich geändert (N), Auf kritischem Pfad (N) oder Nur angekreuzte, mit einem Suchfeld. Der Filter wird pro Projektmappe gespeichert, und der Trend summiert dann die Zeit der gefilterten Projekte – der Trend Ihrer Projekte, nicht der ganzen Projektmappe.

Ein Projekt über alle Builds

Klicken Sie auf ein Projekt, um seine Balken in jedem verglichenen Build zu sehen; ein umrandeter Balken bedeutet, dass es im jeweiligen Build auf dem kritischen Pfad lag. ‹ Alle Projekte führt zurück.

Als Markdown kopieren

⧉ Kopieren legt die Tabelle so, wie Sie sie sehen – dieselben Builds, derselbe Filter –, als Markdown-Tabelle in die Zwischenablage, bereit für einen Pull Request oder einen Chat. In der Ansicht eines einzelnen Projekts wird dieses Projekt kopiert.

Einstellungen

Extras › Optionen › SmithWorks › BuildSmith (oder ⚙ im Fenster „Build-Zeitachse“). Jede Option hat eine kurze Beschreibung ihrer Wirkung.

OptionStandard
Builds aufzeichnenein
Nicht aufgezeichnet für:Keine Projektmappe ist ausgeschaltet.
Builds behalten für:1 Woche
Beschriftete Builds behaltenein
Zeit in der Statusleisteein
Projekte hervorheben, die nie aktuell sindein
Um eine Bewertung im Marketplace bittenein

Gesamten Verlauf löschen (N Projektmappen, Größe)… löscht die aufgezeichneten Builds aller Projektmappen und fragt, ob beschriftete und behaltene Builds bleiben sollen. Unten: Auf Standard zurücksetzen, Dokumentation, Im Marketplace bewerten und Feedback senden.

Einstellungen und Verlauf werden in %LocalAppData%\BuildSmith gespeichert.

Die Optionsseite von BuildSmith
Die Optionsseite.

FAQ

Sendet BuildSmith irgendwelche Daten?

Nein. Die Buildzeiten stammen aus den Build-Ereignissen von Visual Studio und bleiben auf Ihrem Computer, in %LocalAppData%\BuildSmith. Keine Netzwerkanfragen, keine Telemetrie.

Warum steht neben der Zeit keine Änderung?

Es gibt noch keinen vergleichbaren Build: dieselbe Art (Erstellen oder Neu erstellen), Konfiguration, Plattform und derselbe Branch. Erstellen Sie noch einmal, dann erscheint die Änderung.

Was genau ist der kritische Pfad?

Die Kette von Projekten, auf die der Build warten musste: Jedes begann erst, nachdem das vorherige fertig war. Ihre Länge ist die kürzeste mögliche Buildzeit mit diesen Projekten, egal wie viele Kerne Sie haben. Ein Projekt außerhalb des kritischen Pfads zu beschleunigen, verkürzt den Build nicht.

Das Fenster bleibt nach einem Build leer.

Prüfen Sie, ob die Aufzeichnung eingeschaltet ist (⏻ im Fenster, Builds aufzeichnen in den Einstellungen) und ob diese Projektmappe nicht in der Liste Nicht aufgezeichnet für steht. Außerhalb von Visual Studio gestartete Builds (dotnet build in der Befehlszeile) werden nicht aufgezeichnet.

Macht BuildSmith den Build langsamer?

Nein. Es hört auf Start und Ende jedes Projekts, die Visual Studio ohnehin meldet, und schreibt nach dem Build eine kleine Datei. Den Build oder seine Protokollierung ändert es nicht.

Wie viel Speicherplatz belegt der Verlauf?

Sehr wenig: Ein Build ist eine kurze Liste von Projekten mit ihren Zeiten. Die Einstellungen zeigen die Größe neben Gesamten Verlauf löschen, und alte Builds verschwinden nach dem gewählten Zeitraum von selbst.

Wo melde ich ein Problem oder schlage eine Funktion vor?

Erstellen Sie ein Issue im Repository Feedback auf GitHub – dort gibt es Formulare für Fehler und Ideen (bitte ändern Sie vertrauliche Namen). Sie können auch die Registerkarte „Q&A“ im Marketplace verwenden.

Änderungsprotokoll

1.0.0