Как проверить, если.NET DLL зарегистрирована?

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

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

3 ответа

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

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

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

HKEY_LOCAL_MACHINE/Software/Classes

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

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

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

Другие вопросы по тегам