Поиск версии файла COM DLL с использованием ASP.NET - PullRequest
0 голосов
/ 20 ноября 2008

У меня есть страница диагностики программного обеспечения, на которой я хотел бы перечислить информацию о версии файла для пары COM DLL. Страница работает под обычной ограниченной учетной записью ASP.Net (NETWORK SERVICE).

Учитывая ProgIDs библиотеки COM, каков наилучший способ получения физического пути к файлу или иного доступа к версии файла #?

Обратите внимание, что загрузка его через Type.GetTypeFromProgID и использование объекта Assembly типа не будет работать, поскольку возвращаемый объект Assembly является объектом для mscorlib.

Путь установки может быть выбран пользователем и не обязательно является конкретным значением.

1 Ответ

1 голос
/ 20 ноября 2008

Одним из способов решения этой проблемы является использование функции COM CLSIDFromProgID (Pinvoke.Net показывает, как вызвать это из .Net здесь ) для получения CLSID, используйте GUID. ToString ("B"), чтобы преобразовать CLSID в подходяще отформатированную строку, а затем использовать ее, чтобы унижать реестр, чтобы найти, где зарегистрирован COM-сервер.

Путь будет
HKEY_CLASSES_ROOT\CLSID\<YourCLSID>\InprocServer32 если COM-сервер является внутрипроцессным сервером (т. Е. DLL, как вы ожидаете)

Обратите внимание, что путь к файлу в реестре не обязательно является полным путем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...