Сбой Regasm, если сборка зависит от других сборок, не находящихся в той же папке - PullRequest
0 голосов
/ 03 октября 2010

Рассмотрим следующий сценарий У меня 2 сборки Сборка с именем A.dll находится в папке Fold_A Сборка с именем B.dll находится в папке Fold_B A.dll зависит от B.dll и A является видимым COM когда я выполняю команду regasm A.dll / codebase
это терпит неудачу, но когда B скопировал в fold_a - команда успешно

Вопрос заключается в следующем: есть ли способ выполнить без копирования сборок, от которых зависит сборка, подлежащая регистрации (по regasm)?

Уже существует вопрос, связанный с проблемой: Несколько путей поиска для сборок, отсутствующих в GAC, при использовании REGASM & COM

Ваша помощь будет очень ценной Заранее спасибо

1 Ответ

1 голос
/ 04 октября 2010

Ну, да, это проблема, когда вы регистрируете ее, но это будет гораздо большей проблемой, когда клиент фактически использует ваш COM-сервер.Типичным COM-клиентом будет неуправляемый код, поэтому не очень удобно давать ему, например, файл .config, чтобы сообщить CLR, где искать сборку B.

Если вы хотите, чтобы это работало для любогоклиент без конфигурации, то вы должны поставить B в GAC.В общем, это подходящее место для COM-серверов, DLL ад не имеет ничего общего с использованием COM.Использование события Assembly.AssemblyResolve, вероятно, не будет практичным, но вы можете попробовать использовать статический конструктор класса для регистрации обработчика события.Жесткое кодирование пути к зависимостям сомнительно, если только эти папки не всегда связаны.

...