CruiseControl.Net Build Publisher - コンパイルされたファイルのみを公開します

StackOverflow https://stackoverflow.com/questions/23027

質問

CruiseControl のセットアップ中に、buildpublisher ブロックをパブリッシャー タスクに追加しました。

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

これは機能しますが、ビルドのファイル内容全体がコピーされます。コピーしたいのは DLL と .aspx ページだけであり、公開するためにソース コードは必要ありません。

これをフィルタリングする方法を知っている人はいますか、それとも代わりに RoboCopy スクリプトを実行するタスクを設定する必要がありますか?

役に立ちましたか?

解決

これを行うためのタスクを設定しました。CruiseControl をそこまで具体的にする方法は知りません。通常は、バッチ ファイルをチェーンして CC.net タスクへのコピーを実行するだけです。

他のヒント

Web プロジェクトの場合はわかりませんが、Winforms アプリの場合は、次のように MSBuild タスクから TargetOutputs を取得できます。

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

そしてコピーを実行します。

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

Web プロジェクトの TargetOutputs が何であるかはわかりませんが、Winforms およびクラス ライブラリの場合、それは .dll または .exe です。

CC.NET のデフォルトのビルド発行者は、これを行う方法を提供しません。いくつかのオプションがあります:

  • 必要な機能を備えた独自のビルド パブリッシャーを作成する
  • カスタム NAnt/MSBuild タスクの作成
  • スクリプト テクノロジ (RoboCopy、バッチ ファイルなど) を使用してスクリプト ファイルを作成し、CC.NET の「実行可能」タスク、または NAnt/MSBuild の「実行」タスクを実行します。

CC.Net Powershell タスクもこれに使用できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top