3

Register for COM Interopチェックしたいくつかのプロジェクトのソリューションがあります。

結果の TLB を参照する Visual Basic 6 プロジェクトがあります。VB6 の 1 つの問題は、dll/tlb を参照するときに、そのファイルをロックすることです。

Visual Studio 2010 を使用すると、再構築を行っているか、これらの相互運用プロジェクトのいずれかに変更を加えていない限り、1 つ以上のアセンブリがロックされていることを示すことなく (VB6 プロジェクトを開いた状態で) ソリューションをビルド/実行できます。 .

ただし、Visual Studio 2012 を使用すると、何も変更されていない単純なビルドであっても、常に regasm が実行されるため、VB6 プロジェクトをデバッグできません。

ビルド時に regasm を実行する Visual Studio のこの新機能は、オフにできるものですか?

編集:単純化させてください:

  • Visual Studio 2010 を使用して、ファイルが変更されていないBuild-->Build Solutionとしてマークされているアセンブリの 1 つの出力をヒットして確認しました。Register for COM Interop
  • Visual Studio 2012 を使用しBuild-->Build Solutionて、同じアセンブリを確認します。これは更新されており、ヒットするたびに更新されBuild Solutionます。

Visual Studio 2012 での動作が 2010 と同じように動作するようにしたいと考えています。

EDIT(再度):これをMicrosoft Connect に投稿しました。誰かがそこに回答したり、回避策を投稿したりした場合は、ここにも回答を投稿するように促します.

4

1 に答える 1

0

VB6 と VS20XX を実行しているときに常にこのような問題に遭遇しましたが、常に再構築を行いました。私の提案は、テスト目的での VB6 の使用をやめることです。単純にテスト プロジェクトを作成し、.NET コードで .NET のすべてのテストを実行する方がはるかに簡単であることがわかりました。これにはほんの少しの設定しか必要ありませんが、私の意見ではそれだけの価値があります。

これがあなたの特定の質問に対する答えではないことは知っていますが、代替手段を提供します。あなたが説明している問題に関する限り、動作の変化を再現することはできません。VS201X のみを開き、完全なソリューションを再構築し、VB6 を開き、公開された COM DLL への参照を追加することから始めます。意外なことに気付かなかった。

  1. COM DLL で何も変更していない限り、ビルドは正常に機能します。
  2. ファイルがロックされているため、COM DLL のコードを変更するとビルドが失敗する
  3. ファイルがロックされているため、再構築が失敗する
于 2012-10-12T13:25:26.780 に答える