2008-08-22 12 views
9

Während CruiseControl- einrichten, ich einen buildpublisher Block an den Verlag Aufgaben hinzugefügt:CruiseControl.Net Verlag Bauen - Nur kompilierten Dateien publish

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

Dies funktioniert, aber es kopiert den gesamten Inhalt der Datei des Build, ich Ich möchte nur die DLL- und ASPX-Seiten kopieren, ich brauche den Quellcode nicht, um veröffentlicht zu werden.

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

Antwort

3

Ich habe eine Aufgabe, dies zu tun. Ich bin mir nicht bewusst, dass CruiseControl so spezifisch sein kann. Normalerweise binde ich einfach eine Batch-Datei, um die Kopie zur CC.net-Aufgabe zu machen.

0

Der Standard-Build-Publisher in CC.NET bietet keine Möglichkeit, dies zu tun. Sie haben ein paar Optionen:

  • Ihre eigenen Build Publisher erstellen mit der gewünschten Funktionalität
  • Erstellen Sie eine benutzerdefinierte NAnt/MSBuild Aufgabe
  • Verwenden Sie eine Scripting-Technologie (RoboCopy, Batch-Datei, etc.) eine erstellen Skriptdatei und führt eine „Executable“ Aufgabe für CC.NET oder eine „exec“ Aufgabe für NAnt/MSBuild
1

ich bin nicht sicher, mit einem Web-Projekt, aber für unsere WinForms-Anwendung, können Sie die packen TargetOutputs von der MSBuild-Task wie folgt:

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

und dann eine Kopie:

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

nicht sicher, was die TargetOutputs für ein Web-Projekt, sondern für WinForms und Klassenbibliotheken, dann ist es die DLL oder EXE.

0

Eine CC.Net Powershell-Task kann ebenfalls verwendet werden.

Verwandte Themen