0

私は継承したものに取り組んでいます。一部のプロジェクトは、GACにインストールされる予定のプライマリ相互運用アセンブリ(PIA)を参照しています。ソリューションフォルダには(要約すると)「このプロジェクトをビルドする前に、まずX、Y、ZをビルドしてGACに手動でインストールする」というメモがあります。まあ、それは本当にオートメーションや継続的な統合に役立つものではありませんか?PIAを参照してビルドサーバでビルド作業を行うにはどうすればいいですか

このビルドをTeamCityビルドサーバーで実行したい場合、ビルドエージェントはグローバルアセンブリキャッシュ(GAC)にインストールされたPIAを持たないマシンで実行されます。ビルドは失敗します。これらのPIAをすべてのビルドエージェントマシンにインストールする必要はありません。ビルドするには自己完結型でなければならないので、クリーンなソースコードのチェックアウト、スープからナッツまで構築できます。だから問題は二重です。

  1. GACに依存関係がある場合、自己完結型でビルドを中断することはできません。
  2. (1)が成功した場合、PIAをGACにインストールする必要があるエンドユーザーのデスクトップへの展開にどのように影響しますか?

スタックオーバーフローコミュニティの専門家のアドバイスをいただければ幸いです。

答えて

0

は、私は単にそれが完了したら、それはGACからアンインストールなどGACにX、Y、およびZをインストールした後、ビルドを終了し、ユニットテストを実行するビルドステップ、

を追加します。

あなたのビルドを「自己完結型」にする唯一の方法は、GACインストールされたアセンブリに応じて停止することです。これはビルドサーバー設定の問題ではなく、アセンブリアーキテクチャの問題です。可能であれば、それらのビルド時に他のプロジェクトのbinフォルダにコピーされた正規のアセンブリ参照のみを作成します。

これにより、エンドユーザーの展開が非常に簡単になります.GACインストールを行わずにClick-Once展開を利用できます。

+0

あなたの考えをお寄せいただきありがとうございます。残念ながら、コンポーネントは、外部で開発された多くのシステムで使用される真の共有コンポーネントなので、エンドユーザーシステム上のGACに展開する必要があります。だから、少なくとも償還のために、私はGACを使用しなければなりません。 –

関連する問題