Как проверить, если .NET DLL зарегистрирована? - PullRequest
3 голосов
/ 14 июня 2010

У меня есть решение .NET (один проект написан на C ++ COM, другие написаны на C #) с его библиотеками.

Я хотел бы создать инструмент starttest, который бы проверял, правильно ли зарегистрированы все библиотеки C #, C ++.Как я могу это сделать?Как я могу спросить .NET, регистрируется ли какая-либо C # или C ++ COM библиотека?ш

Ответы [ 3 ]

2 голосов
/ 14 июня 2010

Один из способов - создать объект, используя предположительно зарегистрированную DLL. если он работает, то вы можете быть уверены, что его правильно зарегистрированные все остальные методы могут быть ненадежными

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

Вы можете сканировать / искать в реестре, если есть запись для classid компонента COM.Или какой-то другой ключ, который вы могли бы установить при регистрации.

Все классы зарегистрированы в этом кусте:

HKEY_LOCAL_MACHINE/Software/Classes

Другой метод - попытаться создать экземпляр объекта COM и проверить, успешно ли он выполнен, илитерпит неудачу.

0 голосов
/ 14 июня 2010

Лучше всего попытаться создать экземпляр каждого из классов, которые требуются для ваших тестов Разрешить ссылки и определить регистрацию COM довольно сложно (даже для Windows).

Например, вы можете выполнить поиск в реестре идентификатора программы вашего COM-объекта, но это не скажет вам, что все зависимости есть, и полный объект и интерфейсы зарегистрированы правильно.

...