1

あるビルドの出力を別のビルドにバイナリとして含める適切な方法は何ですか?

CompanyName.Domain (私のドメイン層) というソリューションがあるとします。ビルドとしてセットアップし、夜間にビルドします。

次に、SomeProject.Web というソリューションを追加します。そして、CompanyName.Domin からのバイナリを、ソリューションのピア レベルで Binaries フォルダーに含めたいと考えています。次に、Binaries\CompanyName.Domain.dll へのプロジェクト SomeProjects.Web 参照が機能します。

これを行うためのベストプラクティスは何ですか? 分岐でこれをやろうとしていると言った人を知っています。私は完全な「ソース管理」初心者です。しかし、これについては何かが間違っているように聞こえます。

4

4 に答える 4

2

Darylと同様に、バイナリを参照する「Binaries」フォルダを使用します。私たちの「ライブラリ」は、結果をバイナリの場所にxcopyするだけなので、ライブラリを更新したい場合は、バイナリをチェックアウトしてビルドし、再度チェックインするだけです。

これにより、すべての内部ライブラリ(および使用するサードパーティライブラリ)を単一の標準化された場所から共有でき、すべてのライブラリを事前に構築できるため、開発者が実際に何も変更していない場合にそれらを構築する必要がなくなります。 libs。

ライブラリのリリースビルドのみを参照するように注意してください(これに対する唯一の例外は、条件付きでデバッグビルドにのみコンパイルされるデバッグヘルパーのライブラリがあることです。それ以外の場合は、すべてのデバッグがデバッグバージョンを参照する必要があります。デバッグビルドでもプログラムからコンパイルされます!)

最後の注意:合理的な代替手段がない場合を除いて、分岐は避けてください。

于 2009-07-20T13:32:29.410 に答える
0

TFS Dependency Replicatorを使用します。これは、プロジェクトのビルド後にTFS内の任意のプロジェクトにファイルをコピーできます。それは本当に素晴らしいドキュメントを持っていませんが、あなたがそれをセットアップした後にそれが想定されていることをするようです。

TFS Team Buildを使用した依存関係レプリケーションの実装に関するブログ投稿では、どのプロジェクトがどの依存関係を使用しているかを追跡するのに役立つ分岐シナリオを設定することを推奨しています。これも私には理にかなっています。

于 2009-07-20T13:33:11.487 に答える
0

bin フォルダーは実際にはソース管理下に保存されないため、私の会社では、外部参照アセンブリをビルドするために必要なすべての .dll ファイルを保持する「参照」フォルダーを作成することによってこれを行います。

于 2009-07-20T13:19:37.473 に答える
0

私のプロセスは他のポスターのプロセスと似ています。

CoreProject と AppProject という 2 つのプロジェクトがあるとします。CoreProject は共有されています。AppProject には SharedBinaries というフォルダーがあります。これは、すべてのアセンブリ参照が指す場所です。

CoreProject の TFSBuild スクリプトは、次のように構成されています。

-最新のものを入手

-ビルド ドロップからドロップ ゾーン (\\SERVER\DropZone\CoreProjectBuildNameAndNumber のようなもの)

- ドロップは、ドロップ ゾーン (\\SERVER\DropZone\Latest\CoreProject など) のフォルダーにコピーされます。

AppProject の TFSBuild スクリプトは、次のように構成されています。

-最新のものを入手

-SharedBinaries フォルダー内のファイルをチェックアウトします。

-\\SERVER\DropZone\Latest\CoreProject からファイルをコピー

-建てる

- ドロップ トゥ ドロップ ゾーン (\\SERVER\DropZone\AppProjectBuildNameAndNumber のようなもの)

-ビルドが成功した場合、ビルドはフォルダー ドロップ ゾーン (\\SERVER\DropZone\Latest\AppProject など) にコピーされ、SharedBinaries 内のファイルがチェックインされます。

- ビルドが失敗すると、SharedBinaries にコピーされたファイルのチェックアウトが取り消されます。

これは本当にうまくいくことがわかりました。AppProject は常に CoreProject の最新のビットでビルドされているため、重大な変更があるかどうかはすぐにわかります。SharedBinaries を TFS にチェックインすることで、特定のバージョンを取得し、その時点で使用されていた CoreProject の同じ dll でコードを実行できます。また、最新のものを入手する必要があり、ローカルマシンも最新のビットで構築しています。

于 2009-07-24T05:27:10.170 に答える