私は最近、ビルドプロセスをより管理しやすくするために、リリースエンジニアリングチームに任命されました。私たちの製品の歴史では、バージョン管理リポジトリにすべてのビルドを組み込むだけで、それほど時間を費やすことはできませんでした。これには、ソース(エンタープライズライブラリなどを含む)、独自の社内フレームワークコード、最終的には製品自体が含まれているサードパーティ製品が含まれます。しかし、数年間の安定した製品の成長の後、これは非常に面倒なプロセスになっています。TFS:ビルドプロセスを緩和するためにフレームワークビルドをキャッシュする方法
私たちは、(毎日変わる)製品だけが毎日構築されるような一種の階層型ビルドシステムを確立したいと思いますが、フレームワークコード(変更頻度はそれほど変わらない)と第三者コード(ほとんど決して)は変更されたときにのみ構築されます。新しいバージョンではない新しいバージョンのフレームワークライブラリなどのデバッグコードを容易にするために、&ソースサーバーが設定されていますが、これを容易にする方法はまだわかっています。記録のために、ソース管理にTFVCを使用します。
私の質問は次のとおりです。どのような種類のプラクティスがこの種のものに使用されていますか?このビルドの各「層」(つまり、第三者のためのチームプロジェクト、フレームワーク、製品のためのチームプロジェクト)ごとに別々のチームプロジェクトを設定し、それらを互いに分け合わせますか?依存関係が解決されることを確実にするために、1つの層のビルド製品を次の製品にチェックインしますか?そうでない場合は、バイナリはどこにありますか?これらの要件は、私たちがGACを使用することを要求しますか?
最後に、この種のことについてのガイダンスがあれば、読んでみたいと思っています。しかし、私が工学を構築/解放するのが新しいので、私はまだどこを見るべきか分からない。
ありがとうございます!
素晴らしい。これは私が夢見てきたアプローチです。自動化されたフレームワークのインストールのアイデアは非常に興味深いです!代わりに、ソースコントロールを使ってバイナリを管理していました。しかし、異なるビルドをインストーラの使用のみで関連させることには魅力があります。これは、出荷時に、製品をインストールするために複数のインストーラを実行する必要があるか、または最終製品インストーラで依存関係を再パッケージ化する必要があることを意味しますか? – bwerks
また、あなたが提供したリンクがhttp://www.amazon.com/Inside-Microsoft-Build-Engine-Foundation/dp/0735645248/ref=sr_1_1?ie=UTF8&qid=1312987188&sr=8-であると推測していました。 1、しかし私はそれが他の何かだったらうれしいです!私はちょっと不機嫌ではありませんが、私はそれを何とか注文しました - それを読むことに興奮しています! – bwerks
別にインストールしました。したがって、クライアントは最初にフレームワークをインストールしてからアプリケーションをインストールする必要があります。しかし、フレームワークとアプリケーションの両方を組み合わせた別のインストーラを作成することもできます。単にそれぞれのためのmergemoduleを作成し、mergemoduleをインストールするだけで何もしないインストーラを作成してください。 – Sardaukar