0

最近、自動ビルドシステム用に TeamCity 7.1.4 に切り替え、既存のプロジェクトにChargifyNET依存関係を追加しようとしました。Build Artifactの概念とDependent Buildの概念について読んだことがありますが、どちらもかなり単純明快に思えます。ただし、ビルド/コンパイルする必要のない依存関係を追加する方法について、ドキュメントは実際には明確ではありません。

理想的には、ChargifyNET バイナリを含むアーカイブをフォルダーに保存し、プロジェクトの依存関係を構成するときにそのアーカイブをアーティファクトとして参照できるようにしたいと考えています。どうすればこれを設定できますか?

これまでのところ、ChargifyNET 用に別のプロジェクトを構成し、アーカイブからの個々のバイナリをこのプロジェクトのアーティファクトとして宣言しました (たとえば、%teamcity.agent.work.dir%/Chargify.NET/1.0.7/ChargifyNET.dll)。 )。次に、ChargifyNET プロジェクトのアーティファクトのメイン プロジェクトに依存関係を追加しました。

メイン プロジェクトをビルドすると、「アーティファクトの解決に失敗しました」というエラーが表示されます。ビルド ログの「アーティファクトの依存関係の解決」の下に、ChargifyNET アーティファクトについての言及がありません。

ChargifyNET を依存関係として TeamCity プロジェクトに追加するにはどうすればよいですか? カスタム Ant スクリプトを使用する必要がありますか、それとも UI から実行できますか?

アーティファクトのパスに問題があるのか​​もしれません。サードパーティのライブラリは、エージェントの作業ディレクトリまたはその他のフォルダーの下に保存する必要がありますか?

すべてのサードパーティ ライブラリを VCS リポジトリにチェックインすることはベスト プラクティスですか? おそらく別の解決策は、サードパーティのライブラリを保持する VCS リポジトリを指すメイン プロジェクトに追加の VCS ルートを追加することです。

4

1 に答える 1

0

質問に記載されているChargify.NETプロジェクトの作成は順調でした。

  1. このプロジェクトの下にビルド構成を作成し、静的ビルド番号 (つまり 1.0.7) を入力します。

  2. Chargify.NET ビルドを「実行」して、TeamCity がエージェントの作業ディレクトリに動的ビルド フォルダーを作成する必要があります。

  3. ステップ 2 で作成したフォルダーに Chargify.NET バイナリをコピーします。

  4. アーティファクト パスを「%teamcity.agent.work.dir%/Chargify.NET/1.0.7/ChargifyNET.dll」から「ChargifyNET.dll」に変更します。この新しいパスは、手順 3 で説明したファイルを直接参照する必要があります。

  5. メイン プロジェクトの Build Dependencies セクションのアーティファクト パスを Chargify.NET 用に変更します。これらはステップ 4 と同じように見えるはずですが、宛先パスを追加する必要がある場合があります (「ChargifyNET.dll=>trunk/bin」など)。

  6. メイン プロジェクトをビルドすると、ファイルが正しくインポートされていることがわかります。

于 2013-04-04T15:07:01.403 に答える