0

重複の可能性:
ビルド前タスク - CruiseControl.NET で作業コピーを削除する

クルーズコントロールのビルド プロセス中に作業ディレクトリを削除したいのですが...これは簡単だと思いますが、その例を見つけることができませんでした...

ディレクトリの作成方法を知っていれば、それも役に立ちます。

ありがとう。

4

4 に答える 4

4

2 つの方法のうちの 1 つ。

  1. MSBuild ファイルなどを既に使用している場合は、MSBuild ファイルにアクションを追加します。
  2. コマンドを直接実行する代わりに、そのコマンドを実行してからディレクトリを削除するバッチ ファイルを作成し、代わりにそのバッチ ファイルを CCnet に呼び出してもらいます。
于 2008-08-25T21:21:06.117 に答える
0

私が過去にこれを行った方法は、CC.Net チェックアウト ソース自体を持たないことです。代わりに、プロジェクトには 2 つの要素があります。最初の要素は、 svn-clean.pl<msbuild> (.exe にコンパイル)を実行するビルド ターゲットを呼び出し、次に svn.exe を使用してソースを更新します。2 番目の要素は、メインのビルド プロセスを開始します。<msbuild>

svn-clean を削除コマンドに簡単に置き換えることができます。私のプロジェクトでは、新しい作業コピーをチェックアウトするよりも、チェックアウトからチャフを削除する方が常に高速でした。

メイン プロジェクトのビルド ファイルは頻繁に更新されるため、2 つの msbuild 要素が必要です。ビルド ファイルへの更新は、新しい msbuild プロセスを開始した場合にのみ再読み込みされるため、これは重要です。

このセットアップは、クリーン アンド アップデート ターゲットを実行するための有効な指示のために msbuild プロセスをリロードする必要がある範囲まで、そのクリーン アンド アップデート ビルド ターゲットの依存関係を (非常にまれに) 移動または変更すると壊れます。これが発生すると、コミットする前に CC.Net を停止し、CC.Net サーバーに移動して、手動で「svn update」を実行します。

サイドライト: CC.Net には、ビルド前にクリーンな操作が自然に組み込まれている可能性があります。それ以来、ビルドごとに、または開発者が選択したときにのみこれを行うように構成可能な TeamCity に移動しました (たとえば、クリーンに更新されない変更を加えたことを知っている場合-ビルド製品を含むディレクトリの svn 移動がマインド)。

于 2008-08-26T01:27:03.700 に答える
0

私の推測では、 CruiseControl.NET がソース管理から最新のコードを取得する前に、作業ディレクトリを削除したいと考えています。この場合、これを実現する唯一の方法は、最初に作業ディレクトリを削除してから最新のコードを取得する、CruiseControl.NET 用のカスタム ソース管理プロバイダーを作成することです。ソース管理プロバイダーの作成方法の例については、CruiseControl.NET のソース コードを参照してください。

ソース管理から最新のコードを取得したで作業ディレクトリを削除する場合は、 「cmd /c del directoryname」を実行して CruiseControl.NET の実行可能タスクを使用できます。

于 2008-08-25T21:32:53.343 に答える
0

ASP.NET の作業では、私にとって最も簡単な方法 (プロジェクトに応じて MSBUild または NAnt のいずれかをヒットできます) は、bat ファイルを起動して渡す引数を取る自分の exe をロールすることでした。 CC.NETによる。これは世界で最も安全なことではありませんが、自動化されたビルド マシンを完全に制御できれば、安全です。それはあまりにも粗末ではありません。迅速かつ再利用可能。

再帰的な削除を行う exe をどこかにドロップします。

static void Main(string[] args)

{
        for (int n = 0; n < args.Length; n++)
        {
            if (Directory.Exists(args[n].ToString()))
            {
                Directory.Delete(args[n].ToString(), true);
            }

        }


}



複数のファイルが引数を渡すことができる場所にドロップし、プロジェクトごとにカスタム .bat ファイルを書き込むだけです。したがって、私のタスクブロックは次のようになります。

<タスク>
    <msbuild>
        <executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
        <workingDirectory>Z:\WorkingDirectory</workingDirectory>
        <projectFile>YourSolution.sln</projectFile>
        <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
    </msbuild>
    <実行>
        <executable>Z:\SomePathToBuildScripts\YourCustomBat.bat</executable>
    </実行>
</タスク>



次に、使用後に削除/再構築機能を実行するようにその .bat ファイルを設定します。サイトを公開する予定がある場合は、bat ファイルで、削除したディレクトリを再構築 (「MD」) してください。私たちの開発ボックスでは、これが最愛のフランケンビルドを防ぐための最良の方法であることがわかりました.

于 2008-08-25T21:38:16.713 に答える