Зондирование сборки .NET с регистрацией Free COM / .NET Interop - PullRequest
1 голос
/ 30 июня 2010

У нас есть одна сборка, которая используется исполняемым файлом VB6 через COM Interop. Эта сборка использует другую сборку .NET (недоступно для COM). Мы определили .manifest для нашего приложения VB6, чтобы мы могли использовать сборку .NET без регистрации. Мы также определили .config для нашего приложения VB6 с настройками пробников для поиска сборок в подкаталогах («bin»).

Если мы поместим все сборки .NET в указанный подкаталог («bin»), наше приложение будет успешно запущено, и мы сможем работать с ним до тех пор, пока Interop-Assembly не вызовет некоторый код других сборок. Затем мы получаем ошибку времени выполнения «429»: компонент ActiveX не может создать объект.

Когда мы удаляем файл .config и помещаем все файлы в один каталог, приложение работает как положено.

Можно ли использовать зондирование для сборок .NET, которые используются исполняемым файлом VB6? Есть ли способ правильно настроить зондирование, чтобы другие сборки были успешно расположены?

.config

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

1 Ответ

1 голос
/ 30 июня 2010

Ну, похоже, ваш файл .config не работает. Это может произойти при попытке отладки приложения VB6 из среды IDE VB6, CLR будет искать в неправильном каталоге файл .config. Лучший инструмент, который вам нужен для устранения неполадок, это fuslogvw.exe , он показывает, где CLR искал сборку.

...