CruiseControl.Net Build Publisher - コンパイルされたファイルのみを公開します
-
09-06-2019 - |
質問
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 タスクもこれに使用できます。
所属していません StackOverflow