Frage

Ich Laufe ein ASP.NET website-Lösung mit ein paar anderen Projekten in der it.Ich habe gewußt, daß MSBuild-Projekte, die in der Lage sind, diesem aber ist es der beste Weg?Sie sind leicht zu erstellen?Ist nAnt, CruiseControl.NET oder eine andere Lösung besser?

Beim erstellen der site verwendet wird Web Deployment Projects), kann ich automatisieren Teil der bauen, so dass es wird nicht kopiert werden, bestimmte Ordner aus dem Projekt in den Release-Ordner?Zum Beispiel habe ich Ordner mit lokaler Suche, Indizes, Bilder und andere Inhalte, die Teil des Ordners, aber ich habe nie brauchen oder hochladen diejenigen, die beim bereitstellen des Projekts.

Ich bin auch auf der Suche nach dieser Art von Lösung, die automatisch erhöht build-und Versionsnummern.

War es hilfreich?

Lösung

Hier ist ein Beispiel für eine Web-Deployment-Projekt scripting dieser Art von Aufgabe in der .wdproj-Datei:

  <Target Name="AfterBuild">
    <!-- ============================ Script Compression============================ -->
    <MakeDir Directories="$(OutputPath)\compressed" />
    <Exec Command="java -jar c:\yuicompressor-2.2.5\build\yuicompressor-2.2.5.jar --charset UTF-8 styles.css -o compressed/styles.css" WorkingDirectory="$(OutputPath)" />
    <Exec Command="move /Y .\compressed\* .\" WorkingDirectory="$(OutputPath)" />
    <RemoveDir Directories="$(OutputPath)\sql" />
    <Exec Command="c:\7zip-4.4.2\7za.exe a $(ZipName).zip $(OutputPath)\*" />
  </Target>

Dies würde Ihnen ermöglichen, um einen Ordner zu löschen.

(Ich vermute, dass, wenn Sie wollten, nicht die Ordner rüberkopieren an alle, die solution-Datei der Ort wäre, um festzulegen, dass, wenn ich habe nicht zu verwenden.)

Andere Tipps

MaseBase, die Sie verwenden können, Web Deployment Projects bauen und Paket-Websites.Wir tun alle die Zeit für Projekte mit einer web-Anwendung Aspekt.Nachdem Sie weisen eine WDP zu einer Website, die Sie öffnen können, die .wdproj Datei als nur-text-XML-Datei.Am Ende ist einer kommentierten Abschnitt der MSBuild-Ziele, die für die Abfolge der Ereignisse, die Feuer während eines build-Prozesses.

<!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
Other similar extension points exist, see Microsoft.WebDeployment.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="BeforeMerge">
</Target>
<Target Name="AfterMerge">
</Target>
<Target Name="AfterBuild">
</Target>
-->

Sie können die Auskommentierung der Ziele, die Sie möchten (z.B."AfterBuild") und fügen Sie die notwendigen Aufgaben, die es zu tragen out Ihre wiederholte post-build-Aktivitäten.

Sie können die Build-Aktion/Copy to Output Directory-Eigenschaft auf einzelne Dateien (wählen Sie die Datei aus und drücken Sie F4, um das Eigenschaftenfenster zu öffnen) zu kontrollieren, was Ihnen passiert, während zu bauen, aber nicht für Ordner.Dies ist wahrscheinlich die automatisiert mit (vor -) bauen Herausforderung, wenn Sie nicht wollen, es zu tun manuell.

Alternativ können Sie diese Ordner ausschließen aus dem Projekt (Rechtsklick und 'exclude from project');Sie werden immer noch da sein ("alle Dateien anzeigen" im Projektmappen-explorer), aber Sie werden nicht eingeschlossen, wenn das Projekt zu erstellen.

CruiseControl.NET löst ein anderes problem (continuous integration) ...aber ich habe großen Erfolg mit NAnt insbesondere für das, was du fragst.Es gibt eine Lernkurve, aber sobald Sie Sie beherrschen Sie werden sich Fragen, wie Sie jemals got zusammen w/o it.

Zusätzlich zu @Fredrik Tipp zum festlegen der Projekt-Elemente, um "Copy to Output Directory", Sie können auch angeben, dass ein post-build-Aktion in den Projekt-Eigenschaften in der Registerkarte "Erstellen" und schließen Sie CMD Befehle wie copy.exe und move.exe.

Wir verwenden FinalBuilder zu automatisieren eine Reihe von post-build / pre-build-Aufgaben.Es gibt auch eine web-Schnittstelle, so können Sie kick-off-builds (oder push-Webseiten) durch die Anmeldung auf der Webseite und das klicken auf eine Schaltfläche.

http://www.finalbuilder.com/

Kannst du nicht Bearbeiten der Web-Deployment-Projekt der MSBuild-Datei für Sie zu tun, was Sie wollen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top