Ich habe eine sehr große Lösung, und es kompiliert jedes Mal, wenn ich versuche, zu debuggen.
Ich weiß also, dass ich das Erstellen aller Projekte in der Lösungskonfiguration überhaupt deaktivieren kann, aber gibt es eine Möglichkeit, Visual Studion zu sagen, nur geänderten Code zu kompilieren?
Ich bin mir sicher, dass das ist.
Danke für die Zukunft.
Wie Marnix und Anton bereits gesagt haben, ist das normalerweise VS. Wenn Sie jedoch viele Projekte in Ihrer Lösung haben, die voneinander abhängig sind und Änderungen an einer Komponente vornehmen, die von allen oder den meisten anderen Projekten verwendet wird, müssen auch die anderen erneut erstellt werden, um sicherzustellen, dass alles wie erwartet funktioniert .
Wenn es also beginnt, sich neu zu kompilieren, selbst wenn Sie keine Änderung vorgenommen haben, müssen wir herausfinden, wie VS versucht, herauszufinden, was es auf einem inkrementellen Build zu tun hat.
Dazu überprüft es einfach die Datumswerte jeder Datei und ob es Änderungen gibt. Wenn ja, kompilieren Sie diese Datei und alle ihre Abhängigkeiten neu (z. B. werden Änderungen in einer stdafx.h zu einer vollständigen Neuerstellung führen, weil normalerweise jede Quelldatei auf diese verweist).
Aber es gibt auch Ausnahmen für dieses Verhalten. Ein Setup-Projekt zum Beispiel wird immer neu erstellt, auch wenn keine Änderungen vorgenommen werden (aufgrund dieser Tatsache schließe ich normalerweise das Setup-Projekt vom integrierten Prozess aus und starte es nur manuell, wenn es benötigt wird).
Wenn Sie also nur C / C ++ -, C # -, VB usw.-Projekte haben, die normalerweise inkrementelle Builds unterstützen, muss sich zwischen zwei Builds etwas ändern, auch wenn Sie nichts ändern.
Hier sind einige Möglichkeiten:
[assembly: AssemblyVersion("1.0.*")]
oder einem anderen externen Prozess, um die gebaute Zahl zu erhöhen Wenn einer der obigen Schritte mit einem Modul passiert, von dem alle oder die meisten Ihrer anderen Projekte abhängen, muss alles neu erstellt werden.
Visual Studio macht das eigentlich sofort, wenn Sie einen Build (kein Rebuild) machen. Es wird sich jedoch mit einigen Projekttypen besser befassen als mit anderen. Beispielsweise wird immer ein Setup- oder Bereitstellungsprojekt erstellt.
Sie könnten jedes Projekt entladen, das Sie nicht benötigen, um den Build zu beschleunigen.
Außerdem finde ich es gut, die Anwendung ohne Debuggen zu starten und den Debugger anzuhängen, sobald die Anwendung ausgeführt wird. Soweit ich das beurteilen kann, minimiert dies die Anzahl der Debug-Symbole, die geladen werden, auf das, was tatsächlich von der laufenden Anwendung verwendet wird.
Soweit ich weiß, erkennt MSBuild (die Build-Engine, die von VS verwendet wird) automatisch, was neu zu erstellen ist, basierend darauf, welche Dateien geändert wurden. Stellen Sie also sicher, dass Sie keine generierten Dateien haben, die mit jedem Build aktualisiert werden. Zum Beispiel, wenn Sie die (Assembly-) Version mit Quellcode-Metadaten aktualisieren. Jede geänderte Datei löst einen Build aller Projekte aus, die sie verwenden, sowie alle Projekte, die von ihnen abhängen. Ein Setup wie dieses wird effektiv die meisten Ihrer Anwendung jedes Mal neu erstellen.
Sie sollten "Build Solution" verwenden. Überprüfen Sie diesen Link Ссылка
Ich füge das hinzu, da niemand es erwähnt hat - wenn Sie ein Installer-Projekt in Ihrer Lösung haben, wird dieses Projekt jedes Mal neu erstellt, wenn Sie das Programm neu erstellen oder ausführen, selbst wenn sich keine anderen Projekte geändert haben. Da Gebäude-Installer-Projekte sehr viel Zeit beanspruchen können (~ 45 Sekunden auf meinem Computer, für mein mittelgroßes Projekt) , ist das ein Problem.
Um das Problem zu lösen, gehen Sie einfach in den Konfigurationsmanager (klicken Sie mit der rechten Maustaste auf Lösung - & gt; Eigenschaften - & gt; Konfigurationseigenschaften) und deaktivieren Sie das Installer-Projekt im Debug-Modus.
Tags und Links compilation c# visual-studio