1

サードパーティの DLL を参照している VB.Net プロジェクトがあります。参照を追加すると、VS2010 は相互運用機能を生成します。デバッグ構成とリリース構成に苦労しています。Any Platform (Any CPU) 用にセットアップしました。これが何が起こるかの要点です。

シナリオ 1 - デバッグ モードをアクティブとして選択 - DLL への参照を追加します (COM タブではなく、参照から実行しています) - 構成を保存します。[参照] タブには、Debug フォルダー Interop のみへの参照があることに注意してください。しかし、フォルダーを調べると、interop は Debug フォルダーと Release フォルダーの両方にコピーされ、構成はそれぞれの InterOps を正しく指しています - デバッグ構成をアクティブにしてデバッグを開始します。プログラムが CreateObject 呼び出しで (参照されている DLL 内のクラスに対して) エラー「ActiveX コンポーネントを作成できません」で失敗する - アクティブ モードをリリースに変更する - リリース構成をアクティブとしてデバッグを開始する。プログラムは正常に動作します - コマンド プロンプトからリリース フォルダの exe を実行すると、「ActiveX コンポーネントを作成できません」というエラーが再び表示されます

シナリオ 2 - リリース モードをアクティブとして選択 - DLL への参照を追加します (COM タブではなく、参照を使用して実行しています) - 構成を保存します。[参照] タブには、Release フォルダー Interop のみへの参照があることに注意してください。しかし、フォルダーを調べると、interop は Debug フォルダーと Release フォルダーの両方にコピーされ、構成はそれぞれの InterOps を正しく指しています - リリース構成をアクティブにしてデバッグを開始します。プログラムが CreateObject 呼び出しで (参照されている DLL 内のクラスに対して) エラー「ActiveX コンポーネントを作成できません」で失敗する - アクティブ モードをデバッグに変更する - デバッグ構成をアクティブとしてデバッグを開始する。プログラムは正常に実行されます - コマンド プロンプトから Debug フォルダの exe を実行すると、「ActiveX コンポーネントを作成できません」というエラーが再び表示されます

これは私を夢中にさせています。Exe はどちらのフォルダーからも実行されません。考えられるすべての順列を試してみましたが、ご覧のとおり、上記の両方のシナリオはお互いの鏡像です。参照を追加した時点でのアクティブな構成によって決定されます。

どんな助けでも大歓迎です!!

4

0 に答える 0