13

アーティファクトを公開するための以下を含む TeamCity ビルド構成があります。

Source\Builder\bin\Release\*.dll=>release

これは正常に動作しますが、1 つの dll を除外したいと考えており (かなりの数あります)、+ & - 演算子を使用してこれを行うことができることを読みました。次のようなもの:

+: Source\Builder\bin\Release\*.dll=>release
-: Source\Builder\bin\Release\Builder.*

これらを追加するとすぐに、アーティファクトは公開されず、ビルド ログに次のエラーが表示されます (パスの一部として + がカウントされているようです)。

[Publishing artifacts] Collecting files to publish [+:Source\Builder\bin\Release\*.dll=>release]
[Publishing artifacts] Artifacts path +:Source/Builder/bin/Release/*.dll not found

私はバージョン 7.1.1 を使用していますが、アイデアはありません (これらの演算子が有効かどうかはわかりません)。MSBuild を使用したソリューションを見てきましたが、この機能が利用できないことに驚いています。

前もって感謝します。

4

3 に答える 3

7

私はあなたができるとは思わない。

ただし、アーティファクトの依存関係として別のビルド構成でアーティファクトを使用している場合は、そこで特定のファイルを除外できます。

依存関係を設定するときは、次のように否定演算子を指定できます。

+:release/**=>Dependencies/SomeProject
-:release/SomeBinary.dll

これは恐ろしいハックですが、それを機能させる 1 つの方法は、1 つのバイナリを除いて、依存関係をアーティファクトの依存関係として取得し、独自のアーティファクトを公開する新しいビルド構成をセットアップすることです。

同様に、新しいビルド構成を作成して公開します。

Dependencies/SomeProject=>release

次に、他のビルド構成ではなく、このビルド構成からアーティファクトを参照します。

于 2012-10-08T11:18:59.377 に答える
2

現在のオプションは、 http: //youtrack.jetbrains.com/issue/TW-5244でこの機能のリクエストに投票し、回避策に戻ることです。

TeamCity アーティファクト パスは、同じターゲット フォルダーを複数のパス パターンに再利用できるというフォルダーの質問のヒントを組み合わせたものです。

TeamCity ドキュメントにも次のように記載されています

TeamCity は、パターン内のワイルドカードの最初の出現から始まるディレクトリを作成します。

したがって、多くの場合、除外問題を複数の包含に逆にすることが可能です。

たとえば、テンプレートから除外する方法を探す代わりに、-:**/.svn拡張子でフィルターするだけで済みました。

templates/**/*.vm => templates
templates/**/*.xsl => templates
于 2013-10-10T09:22:42.963 に答える