2

私は CruiseControl.NET を使用して、.NET 3.5 Web アプリケーションを自動的に構築しています。ただし、これらのビルドの ZIP ファイルを自動的に作成し、ZIP を別のディレクトリに配置する方法はありますか?

これは NAnt を使用して可能であることがわかりましたが、これを機能させる方法の例が見つかりません。

誰でもヘルプ/例を提供できますか?

4

4 に答える 4

2

このような Nant タスクを CC マシンに追加しました。

http://nant.sourceforge.net/release/latest/help/tasks/zip.htmlを参照してください。

最初に zip アーカイブを表示したとき、すべてのファイルが同じレベルにある、つまりフォルダーがないように見える場合がありますが、実際にはそれらのフォルダーは保存されています。

ファイルの種類やフォルダーを除外する方法に注目してください。

必要なファイル タイプのみを含め、残りは除外するというアプローチを取ることができます。

最初に、ソース ファイルの場所 allcode.dir のプロパティと、zip ファイル sourcebackup.zip の名前と場所を定義します。

これがナントタスクです

 <zip zipfile="${sourcebackup.zip}" includeemptydirs="true" verbose="true"> 
 <fileset basedir="${allcode.dir}"> 
      <include name="**/*" /> 
      <exclude name="**/_resharper*/**" /> 
      <exclude name="**/build/**" /> 
      <exclude name="**/obj/**" /> 
      <exclude name="**/bin/**" /> 
      <exclude name="**/*.dll" /> 
      <exclude name="**/*.scc" /> 
      <exclude name="**/*.log" /> 
      <exclude name="**/*.vssscc" /> 
      <exclude name="**/*.suo" /> 
      <exclude name="**/*.user" /> 
      <exclude name="**/*.pdb" /> 
      <exclude name="**/*.cache" /> 
      <exclude name="**/*.vspscc" /> 
      <exclude name="**/*.msi" /> 
      <exclude name="**/*.irs" /> 
      <exclude name="**/*.exe" /> 
 </fileset> 

<echo message="########## Zipped##########" />

他のナント タスクと同様に、cc ビルドからこれを呼び出します。可能であれば、各 CC プロジェクトが 1 つのタスクを呼び出し、nant スクリプトを変更するだけで、nant スクリプトをローカル マシンで実行できるようにするのが最適です。

たとえば、プロジェクト ブロックには、作業の一部として ZipSource を呼び出す単一のターゲット「ビルド」があります。

<targetList>
          <target>Build</target>
        </targetList>

上記を BizTalk プロジェクトに使用します。

楽しみ。

于 2009-05-18T12:53:13.213 に答える
1

Nant を使用している場合、Zip タスクは機能しませんか?

于 2008-11-06T13:08:27.480 に答える
0

CruiseControl.NETプロジェクトのソースを圧縮しています

でもアリを使っています

<target name="zipProject">
   <mkdir dir="output"/>
   <zip destfile="output\sources.zip" basedir="C:\project\src" />
</target>

私はナントについて知りませんが、私はそれが似ていると思います

于 2008-11-06T13:11:58.080 に答える
0

@David:NAnt Zipタスクは私が求めているものですが、自動CruiseControl.NETビルドの一部として統合する方法を尋ねています。クルーズ コントロール構成の NAnt ドキュメントを見ると<tasks>、CruiseControl 構成の XML ノード内から NAnt タスクを実行できるかどうかは明確ではありません<schedule>

CruiseControl 構成の設定例と NAnt タスクの例をいくつか見つけましたが、2 つを統合するものはありませんでした。具体的には、CruiseControl ビルドの圧縮です。

NAnt zip タスクに接続する CruiseControl 構成のサンプル XML を誰かが持っている場合は、ここにサンプルを投稿してください。

乾杯。

于 2008-11-06T14:44:26.053 に答える