2008-08-22 26 views
9

當設置CruiseControl的,我加了buildpublisher塊出版商任務:CruiseControl.Net建立出版商 - 只能發佈編譯後的文件

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

這工作,但它的副本構建的整個文件的內容,我只想複製DLL和.aspx頁面,我不需要源代碼來發布。

有誰知道一種方法來過濾這個,或者我需要設置一個任務來運行RoboCopy腳本嗎?

回答

3

我設置了一個任務來做到這一點。我不知道有什麼辦法讓CruiseControl成爲特定的。我通常只是將一個批處理文件鏈接到CC.net任務。

0

CC.NET中的默認構建發佈者不提供這種方法。您有幾種選擇:

  • 具有所需功能
  • 創建一個自定義楠/ MSBuild任務
  • 使用腳本技術創建自己的身材發佈者(ROBOCOPY,批處理文件等)來創建一個腳本文件並運行CC.NET的「可執行」任務,或NAnt/MSBuild的「exec」任務
1

我不確定使用web項目,但對於我們的winforms應用程序,您可以抓取從MSBuild任務TargetOutputs像這樣:

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

,然後做一個副本:

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

不知道什麼TargetOutputs用於web項目,但對於WinForms和類庫,它是該.dll或.exe。

0

CC.Net Powershell任務也可以用於此目的。

相關問題