2011-03-04 3 views
11

TeamCityアーティファクト設定でワイルドカード構文の小さなドラマがあります。私は任意のフォルダからmyproject。*。dllパターンに一致するすべてのファイルを取得し、各DLLをルートの成果物パスに配置します。ここで TeamCity成果物を宛先パスのルートにコピーするための正しいワイルドカード構文は何ですか?

は、私が現在持っているものです:これは、すべてのDLLをつかんされていますが、「myproject.web.dllで終わるよりも、そうではなく、ソースと同じフォルダ構造内にそれらを入れている

**/obj/Debug/myproject.*.dll =>/

"成果物には" Web/obj/debug/myproject.web.dll "があります。

私はここで何が欠けていますか?

答えて

11

これは簡単な方法ではできません。 * .dllをローカルで1か所に集め、TeamCityの成果物ルールを使用してすべてをルートディレクトリにコピーするよりも、

それとも、あなたはそれがTCでどのように動作するかこれは

(一部**なし)手動ですべてのパスを入力することができます。

+1

それは私が好きだった答えではありませんが、それは残念ながら正しいものと思われます。 –

2

構造をコピーせずにアーティファクトルートを使用できるとは確信していません。ドキュメントには、ターゲットディレクトリが省略された場合 ファイルは ビルドアーティファクトのルートに公開されている

を指定します。

distという指定されたフォルダ名を使用するだけでは問題が起こりますか?もしそうなら、彼らは何ですか?

例えば

**/obj/Debug/myproject.*.dll => dist 

アップデート - "にマッチした ワイルドカードにマッチしたディレクトリ の構造(ディレクトリ を保存

ファイルが公開されますドキュメント内のいくつかの詳細情報を見つけました静的な "テキストは作成されません )。つまり、TeamCityは の最初のディレクトリにある から始まるディレクトリを作成し、パターンは になります。

もっと明示できる場合は、よりフラットな構造になる可能性があります。

+0

同じように、「dist」フォルダ内のディレクトリ構造全体にすぎません。とにかく、ルートにファイルを入れたいのであれば、実際には "=> /"構文は必要ありません。 –

+0

なぜこれが問題を引き起こすのかという点では、多くのプロジェクトを含む大きなソリューションであり、DLLがフォルダ構造内に取り込まれると、自分が持っているものを簡単に識別するのが少し難しくなります。すべてのアーティファクトを一目で見ることができるだけでなく、フォルダツリーを横断する必要があります。 –

関連する問題