3

私たちはチーム ビルドを実装しており、従来の VB 6 アプリをビルドするには MSBuild スクリプトを記述する必要があることを認識しています。バイナリ互換性を使用するように構成されており、互換性を時折破ります。新しい自動ビルド プロセスで互換性を自動的に破ることができるようにしたいと考えています。

これを行う方法を知っている人はいますか、それが可能かどうかさえ知っていますか?

あるいは、中断によって互換性が互換性なしに変更され、コンパイルされ、バイナリに変更され、再コンパイルされるだけであることを私は知っています。コマンドラインから互換性を変更する方法を誰かが知っている場合、これも役立ちます。

4

4 に答える 4

2

互換性から互換性なしへの変更に関しては、プロジェクト ファイルを Unix スタイルのツール (sed、awk、および/または perl) で編集して、このようなことを行いました。元のプロジェクト ファイルを変更せずに、新しい/一時的なプロジェクト ファイルを生成し、それを使用してビルドします。次に例を示します。

sed -e "s/CompatibleMode=0/CompatibleMode=2" <myProj.vbp >tmpProj.vbp

この手法は、バージョン番号をプロジェクト ファイルに挿入するなど、他の目的にも使用できます。

于 2009-01-28T21:47:36.470 に答える
1

これは機能します:

VB6 /MAKE c:\Some.vbp /outdir c:\somedir\ /d CompatibleMode="0" CompatibleEXE32=""

于 2009-04-30T09:00:49.353 に答える
0

上記の解決策のいずれかが機能するかどうかはわかりません。私たちの製品にも同じ問題がありました。互換性を壊してプロジェクトをビルドするために、(アドインとしても機能する) vb プロジェクトを作成する必要がありました。vb プロジェクトは、既存の VB ファイルを読み取り、プロジェクトの互換性設定と生成された dll の新しい宛先を含む新しい vbp ファイルを生成します。宛先は、ref-dll が存在するフォルダーと同じになります。dll がビルドされると、古い dll が削除され、新しい red-dll の名前が古いものと一致するように変更されます。最後に、すべての一時ファイルが削除されます。vb プロジェクトには、vbp ファイルである 1 つのパラメーターを取る公開関数があります。これは vb スクリプトから実行できます。したがって、基本的にコマンドライン引数は次のようになります

BuildRefDll.vbs <my.vbp>
vb6.exe /make <my.vbp>
于 2010-07-13T16:04:52.660 に答える