2009-08-04 15 views
2

私は、Subversion、CruiseControl、NAnt、Ivyを使って.NetとVB6の両方のアプリケーションで継続的な統合システムを開発しています。NAntとIvyを使ってVB6プロジェクトを構築する

物事のネット側はあまり問題はありませんが、物事の「DLL地獄」側から、VB6側で少しガイダンスが必要です。

私の現在のセットアップでは、私のVB6システム用のすべての依存ファイルが期待どおりに取得されており、OK内でさまざまなプロジェクトがビルドされています。しかし、それは私のPCに既に登録されているDLLを使用しています。私のLibフォルダ内のDLLではなく、Ivyからの依存関係を解決しています。

Ivyが解決した後にダウンロードしたDLLを登録することで、この問題を回避できます。つまり、プロジェクトファイルをローカルのLibフォルダに置くことができます。 NAntスクリプトが自動的にこれを行い、ビルドプロセスが完了した後に自動的に登録を解除して、次のプロジェクトが同じことをすることができるようにしたい。私は助けが必要だと思う何

、アイビーは私のプロジェクトの依存関係のリストを与える持っている能力である...例えば

、私はプロジェクトA、Bに依存プロジェクトXを、構築していますならばそしてCならば、A、B、Cなどのリストを戻すIvyコマンドを発行することができれば、それらを別のターゲットプロセスに渡して登録/登録解除することができます。

これはですか?理にかなっている?これは可能ですか?これを正しい方法で見ていますか?それとも良い方法がありますか?

私の謝罪は、これを説明するために家の周りを右に行ったことです... !!

答えて

1

私はこれに対する答えを見つけました。

オンデマンドの依存関係のリストを生成するためにIvyを使用するのではなく、ファイルシステムを使用して同じリストを提供したいと考えました。アイビーは依存関係を解決する仕事をしています。私には、.dllファイルでいっぱいの「lib」フォルダが作成されています...

私が行ったことは、そのlibフォルダ内の.dllファイルのリストを取得し、プロパティ(変数)必要に応じて同じプロパティを登録/登録解除することができます。

シンプルに..!

4

私たちはVBPファイルの隣にある別のREFファイルにプロジェクト参照を保存しています。コンパイル時にカスタムツールを使用してVBPを「修正」しています。私たちのビルドプロセスは、this page (The Way We Work)によって大きく影響を受けています。私たちのREFファイルは、彼が記述している構造の直接の逸脱です。

投稿者L.J. Johnson's Take Control of Your Build Cycleへのリンクをたどって、外部ファイルなしで同じ「修正」を行うユーティリティを見つけることができます。

基本的に、修正プログラムはtlbinfoを使用して実行可能ファイル(OCX/DLL)からLIBIDを抽出し、VBPファイル内の参照のguidを完全に置き換える必要があります。これほど複雑ではない手順を使用すると、バイナリまたはプロジェクトの互換性をプロジェクトに使用しているかどうかは関係ありません。また、フルビルドを行う場合は、以前のOCX/DLLを登録する必要はありません。

2

Visual Build Proがこのanswerに推奨されます。他の答えはあまりにも価値がある。

+0

.NETプロジェクトで行ったのと同じようにVB6プロジェクトで同じアプローチをとることができることを期待していました。 私は解決策を自分で見つけました(下記参照)。しかし、助けてくれてありがとう。 –