1

COM Interop を介して VB6 実行可能ファイルで使用されるアセンブリが 1 つあります。このアセンブリは、他の .NET アセンブリを使用します (COM では使用できません)。VB6 アプリケーションの .manifest を定義したので、登録せずに .NET アセンブリを使用できます。また、サブディレクトリ ("bin") でアセンブリを検索するために、プローブ設定を使用して VB6 アプリケーションの .config を定義しました。

指定したサブディレクトリ ("bin") にすべての .NET アセンブリを配置すると、アプリケーションが正常に起動し、Interop-Assembly が他のアセンブリのコードを呼び出すまでアプリケーションを操作できます。その後、実行時エラー '429' が発生します: ActiveX コンポーネントはオブジェクトを作成できません。

.config ファイルをドロップしてすべてのファイルを同じディレクトリに配置すると、アプリケーションは期待どおりに動作します。

VB6 実行可能ファイルで使用される .NET アセンブリにプローブを使用することはできますか? 他のアセンブリが正常に配置されるように、正確にプローブをセットアップする方法はありますか?

.config

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <probing privatePath="bin"/>
      </assemblyBinding>
   </runtime>
</configuration>
4

1 に答える 1

1

.config ファイルが機能していないようです。これは、VB6 IDE から VB6 アプリケーションをデバッグしようとしたときに発生する可能性があり、CLR は間違ったディレクトリで .config ファイルを検索します。これをトラブルシューティングするために必要な究極のツールはfuslogvw.exeです。これは、CLR がアセンブリを検索した場所を示します。

于 2010-06-30T15:39:19.523 に答える