Ich bin derzeit an einem ASP.NET-Projekt mit ungefähr 40 Projekten in der Lösung beteiligt. Wir machen unsere gesamte Entwicklung in geklonten Virtual PC-Umgebungen, sodass alle Entwickler identische Setups haben. Das ist alles gut, Abhängigkeiten zu verwalten ist einfach, aber die Lösung ist schrecklich langsam. Virtual PC kann nur eine CPU verwenden, daher verwende ich nur die Hälfte meiner Computerressourcen.
Es dauert ganze drei Minuten vom Build bis zur vollständigen Seitenauslastung .. und es wird jeden Tag schlimmer, wenn die Projekte wachsen. Das Reparieren einfacher Dinge fängt an, eine lange Zeit zu dauern und persönlich, werde ich frustriert, die ganze Zeit wartend, während ich nicht wirklich arbeiten kann, während der Computer kompiliert.
Gibt es eine Möglichkeit, meinen Build auf mehrere Computer zu verteilen, um den Buildprozess zu beschleunigen?
Würde eine SSD meine Bauzeiten merklich verbessern?
Gibt es eine andere Möglichkeit, den Build zu beschleunigen?
Hinweis : Ich habe versucht, statische Abhängigkeiten mit ngen vorzukompilieren, habe aber später gelesen, dass ASP.NET ngen nicht unterstützt. Ich benutze Visual Studio 2008 und es gibt keine Antivirus-Software in der virtuellen Umgebung.
Sie können die Zeit, die Sie auf einen Build mit ASP.NET warten, erheblich reduzieren, indem Sie Folgendes tun:
Ich hoffe, es hilft!
Wagner Danda da Silva
Und hier ist ein weiterer Tipp, um Build-Zeiten mit ASP.NET zu beschleunigen:
Ich hoffe, es hilft!
Wagner Danda da Silva
Müssen Sie alle 40 Projekte jedes Mal neu erstellen.
Sie können konfigurieren, was in den Einstellungen für die Lösungskonfiguration erstellt wird.
i.e. Wenn Änderungen nur in Ihrem WebUI-Projekt vorgenommen wurden und die anderen 39 Projekte unverändert sind, können Sie eine Buildkonfiguration erstellen, in der nur Ihre Webanwendung neu erstellt wird.
Scott Gu hat einen ziemlich hilfreichen Post darüber:
Tipp / Trick: Optimieren der Leistung von ASP.NET 2.0 Web Project Build mit VS 2005
Scott hat auch einen anderen Artikel über die Geschwindigkeit dieser Festplatte, der sich auch auf die allgemeine Leistung von Visual Studio auswirkt:
Tipp / Trick: Festplattengeschwindigkeit und Visual Studio-Leistung
Fügen Sie nicht so viele Projekte in Ihre Lösungen ein. Erstellen Sie ein neues Projekt nur, wenn der Code in einem anderen Prozess oder auf einem anderen Computer ausgeführt wird. Es macht keinen Sinn, in den meisten Fällen so viele Projekte zu erstellen. Die Anzahl der Projekte ist die bedeutendste in msbuild.
Sie haben Ihre Visual Studio-Version nicht erwähnt, aber wenn Sie 2005 sind, sollten Sie vielleicht ein Upgrade auf 2008 in Erwägung ziehen. In meinem Fall verringerte sich die Build-Zeit für eine größere Lösung (30+ Projekte).
Eine andere Möglichkeit, eine Reihe von Bibliotheken vorzubauen, die sich nicht mehr ändern, und statt der Projekte auf die kompilierten DLLs zu verweisen.
Wir haben eine ähnliche Situation und ich stellte fest, dass unsere virtuellen Maschinen stark gedrosselt wurden, und obwohl sie jeweils auf einer einzigen CPU liefen, durften sie diese CPU nicht vollständig nutzen. Ich schaffte es, 3 virtuelle Maschinen auf einer physischen Maschine laufen zu lassen, die alle 100% schneller arbeiteten.
Ich würde auch versuchen, die Anzahl Ihrer Projekte zu reduzieren. Unsere Hauptlösungen haben 40 Projekte, und ich konsolidiere diese langsam und stelle sicher, dass neue Entwicklungen möglichst in bestehende Projekte passen. Hauptverantwortlich dafür waren Webservices, die jeweils ursprünglich in einem separaten Projekt erstellt wurden. Ich füge jetzt alle neuen Webservices in ein einzelnes Projekt ein und bringe die anderen langsam voran.
Sie sollten auch zu VMware Workstation wechseln, das mehrere Prozessoren verwendet. Ich verwende derzeit ein Setup mit zwei VMs mit zwei Prozessoren, und alle vier werden verwendet.
Was wir in unserer Firma gemacht haben, ist die Verwendung von Dateiverweisen, so dass nur die geänderten Projekte erstellt werden müssen, und zu jeder Zeit gibt es nicht mehr als 10 Projekte in meiner Lösung, meistens werden 2 ~ 3 gebaut.
Wir bauen auch unseren Stamm für jeden Check-in und haben Batch-Dateien für Entwickler, um die neuesten DLLs zu ziehen.
Natürlich verhindert dies nicht, dass der schmerzhafte Assemblierungsreferenzfehler auftritt, aber nach einiger Zeit werden sie eher lästig als problematisch.
Haben Sie versucht, den virtuellen PC abzustimmen?
Alter Artikel, aber der Kern ist immer noch korrekt.
Ich fand in einer ähnlichen Situation, dass eine separate Festplatte für die VPC-Disk-Images die Leistung merklich beschleunigte, besonders wenn man etwas von der Drosselung entfernte.
Vielleicht ist das Problem nicht Visual Studio, es ist nur die Tatsache, dass die Kompilierung ressourcenintensiv ist.
Tags und Links .net asp.net visual-studio-2008 msbuild build-process