Как программа COM определяет местоположение DLL.NET, зарегистрированного для COM Interop?

Один клиент хочет использовать наш DLLs.NET от VB6. Они разработаны для поддержки реверса interop, и все хорошо работает... кроме: существует две отдельных программы VB6 в двух различных каталогах. Кажется, что необходимо сделать один из:

  1. Скопируйте DLL.NET в оба каталога, или
  2. Установите DLL.NET в GAC

Это - наблюдение клиента и также поддерживаемый документацией RegAsm:

После регистрации блока с помощью Regasm.exe можно установить его в глобальном кэше сборок так, чтобы это могло быть активировано от любого COM-клиента. Если блок только будет активированным отдельным приложением, можно поместить его в каталог того приложения.

Я смущен по этому вопросу.

Первая точка беспорядка:

Насколько я понимаю, время выполнения COM определяет местоположение DLL с помощью Прогр идентификатора / идентификатор Класса. Когда я смотрю в реестре на идентификационную запись Класса, я вижу полный путь к DLL.NET в ключе CodeBase. Почему случается так, что программа COM с помощью Прогр идентификатора / идентификатор Класса не определяет местоположение DLL.NET с помощью CodeBase?

Вторая точка беспорядка:

GAC характерен для.NET. Как это вовлечено в разрешение ссылок COM?

8
задан Eric J. 19 May 2010 в 17:47
поделиться