Frage

Beim Einrichten von CruiseControl habe ich den Publisher-Aufgaben einen Buildpublisher-Block hinzugefügt:

<buildpublisher>
  <sourceDir>C:\MyBuild\</sourceDir>
  <publishDir>C:\MyBuildPublished\</publishDir>
  <alwaysPublish>false</alwaysPublish>
</buildpublisher> 

Das funktioniert, aber es kopiert den gesamten Dateiinhalt des Builds. Ich möchte nur die DLLs und ASPX-Seiten kopieren, ich brauche den Quellcode nicht, um ihn zu veröffentlichen.

Kennt jemand eine Möglichkeit, dies zu filtern, oder muss ich stattdessen eine Aufgabe einrichten, um ein RoboCopy-Skript auszuführen?

War es hilfreich?

Lösung

Ich habe dazu eine Aufgabe eingerichtet.Mir ist keine Möglichkeit bekannt, CruiseControl so spezifisch zu gestalten.Normalerweise verkette ich einfach eine Batchdatei, um die Kopie in die CC.net-Aufgabe zu übernehmen.

Andere Tipps

Bei einem Webprojekt bin ich mir nicht sicher, aber für unsere Winforms-App können Sie die TargetOutputs wie folgt aus der MSBuild-Aufgabe abrufen:

<MSBuild Projects="@(VSProjects)"
  Properties="Configuration=$(Configuration)">
  <Output TaskParameter="TargetOutputs" ItemName="BuildTargetOutputs"/>
</MSBuild>

und dann eine Kopie machen:

<Copy SourceFiles="@(BuildTargetOutputs)" 
  DestinationFolder="bin"
  SkipUnchangedFiles="true" />

Ich bin mir nicht sicher, was die TargetOutputs für ein Webprojekt sind, aber für WinForms und Klassenbibliotheken ist es die DLL oder EXE.

Der Standard-Build-Publisher in CC.NET bietet hierfür keine Möglichkeit.Sie haben mehrere Möglichkeiten:

  • Erstellen Sie Ihren eigenen Build-Publisher mit der gewünschten Funktionalität
  • Erstellen Sie eine benutzerdefinierte NAnt/MSBuild-Aufgabe
  • Verwenden Sie eine Skripttechnologie (RoboCopy, Batchdatei usw.), um eine Skriptdatei zu erstellen und eine „Ausführbare“ Aufgabe für CC.NET oder eine „exec“-Aufgabe für NAnt/MSBuild auszuführen

Hierzu kann auch eine CC.Net Powershell-Aufgabe verwendet werden.

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