5

Ich habe eine Lösung mit einer Reihe von Projekten, von denen 3 Web-basiert (WCF in IIS/MVC-Site). Wenn die Lösung erstellt wird, werden alle Komponenten dieses verteilten Systems in einem Ordner "Build" abgelegt. Wenn Sie den Konfigurator-Teil der gesamten Ausgabe ausführen, wird das System automatisch in der Cloud eingerichtet. Es ist sehr nett :) Die Web Deploy-Projekte sind jedoch ein großer Schmerz. Sie "bauen" (d. H. Bereitstellen) jede einzelne, einzelne Zeit, die ich erstelle - auch wenn an ihren jeweiligen Projekten keine Änderungen vorgenommen wurden.Bessere Alternative zu Web Deploy Projects

Eine einzelne Codezeile geändert? Warten Sie ungefähr eine Minute, bis die 3 Webprojekte erneut implementiert wurden.

[Diese Projekte sehr einfach im Moment - zwei eine einzige .svc und eine .ashx Datei haben - die andere einen MVC-app mit ~ 5 Ansichten sind]

Ich weiß, kann ich Lösung Konfigurationen ändern, um nicht Ich baue sie, aber ich mache das und es ist sehr einfach, sich am nächsten Tag anzumelden und es zu vergessen und ein paar Stunden damit zu verbringen, Fehler in verteilten Systemen ausfindig zu machen, weil etwas einfach nicht gebaut wurde.

Warum verwende ich Web Deploy-Projekte? Nun, weil ich alle Seiten + Binärdateien aus dem Webprojekt brauche. Die Build-Ausgabe für das Projekt selbst ist der Ordner "bin", also keine Seiten. Der gesamte Projektordner? Es hat .cs, .csproj und andere Dateien, die ich nicht enthalten möchte.

Dies wird irgendwann auf Build-Servern aufbauen, aber es ist im Moment lokal. Aber ich möchte eine schnelle Möglichkeit, die tatsächlichen Ausgabedateien aus dem Webprojekt in meinen Zielordner zu bekommen. Irgendwelche Ideen?

Antwort

2

Am Ende habe ich ein Dienstprogramm erstellt, das bei einer Projektdatei XCOPY den Projektordner für das Webprojekt an einen Zielort schreibt, dann in der Projektdatei nachschaut und alles löscht, für das keine Buildaktion festgelegt wurde zufriedenstellen. Sehr schnell und effektiv.

+1

+1, denn das habe ich zuletzt gemacht. Entfernt eine Menge Magie und ist einfach zu automatisieren. – Kugel

1

Ich weiß, es ist immer noch in RC, aber VS2012 hat eine nette Funktion bei der Veröffentlichung, dass es die Änderungen erkennt und veröffentlicht nur diese. Könnte etwas tiefer im Build sein, wo es auch automatisch veröffentlicht.

2

nicht sicher, ob dies in Ihrer Situation helfen wird, (Stecker für ein eigenes Projekt kommen), aber ich bin an einem Projekt arbeiten Leichtigkeit zu helfen, IIS-Installationen:

https://github.com/twistedtwig/AutomatedDeployments

Die Idee ist, können Sie Verwenden Sie Konfigurationsdateien für IIS (App Pool, Anwendungen und Websites), um die Erstellung und Aktualisierung von Websites lokal (Dev-Maschinen) oder entfernt (Test- und Produktionsmaschinen) zu automatisieren.

Es ist immer noch in Arbeit, aber bereit für den Einsatz in Produktionssystemen.

Wenn Sie die Paketerstellung als Post-Build-Schritt verwenden, kommen Sie vielleicht näher an das, was Sie wollen (glauben Sie nicht, dass es alle zusätzlichen Dateien enthält), aber es würde jedes Mal neu erstellt. t geändert, sollte es nicht neu erstellt werden, wenn Sie nicht alle Projekte neu erstellen).

0

Sie können einen Blick auf das Octopus-Projekt werfen: http://octopusdeploy.com/ Bereitstellung basierend auf NUget-Paketen.

Verwandte Themen