Существует ли программный способ на C# для определения того, установлена ли конкретная COM-библиотека DLL? Или это вопрос сканирования реестра для classId?Программно определить, установлена ли библиотека COM (.DLL)
ответ
Что я обычно делал (и мог бы сделать, если бы мне это понадобилось еще раз), попытайтесь создать экземпляр объекта класса, который, как вы знаете, находится в библиотеке COM - либо с помощью ProgID, либо GUID - и проверки на отказ.
Попробуйте создать и обработать ошибку, если нет.
Под Win32 CoCreateInstance
будет возвращен REGDB_E_CLASSNOTREG
, если он не установлен (в том числе, IIRC, если он зарегистрирован, но dll/exe реализует его, а затем удаляется).
В .NET сгенерированная сборка COM-взаимодействия будет вызывать некоторую ошибку (необходимо проверить это, не иметь удобный код для проверки, для какого типа исключения). Заметка. если сборка interop отсутствует, то это будет считаться отсутствующей сборкой, что может привести к ошибке загрузки приложения.
- 1. Как определить, является ли dll COM-dll
- 2. Централизованная/общая COM-библиотека DLL, возможно?
- 3. Как программно определить, какая оснастка PowerShell установлена
- 4. найти, установлена ли библиотека, используя сценарий оболочки
- 5. Определите, установлена ли библиотека C в Unix
- 6. Как определить тип dll? (COM, .NET, WIN32)
- 7. Как определить, является ли DLL COM или .NET?
- 8. Программно Проверьте, установлена ли Windows Messaging?
- 9. com класс библиотека регистрация
- 10. COM DLL - значок Overlay
- 11. Незарегистрированная COM-библиотека с проектом установки C#
- 12. Создание DLL COM доступно
- 13. C++ COM ATL DLL
- 14. Как программно определить, есть ли 64-разрядная библиотека в OSX?
- 15. COM dll не сбрасывается
- 16. Resolve COM Reference программно
- 17. Как проверить, является ли PE-файл (DLL, EXE) COM-компонентом?
- 18. Как узнать, установлена ли библиотека в Linux?
- 19. . Библиотека DLL не найдена
- 20. COM dll над C++ dll
- 21. Есть ли библиотека COM-типа для Windows Core Audio
- 22. Библиотека GD2 в PHP не установлена
- 23. Замените родной C++ COM .dll на .NET COM .dll
- 24. Могу ли я остановить отображение dll COM?
- 25. Com DLL In VB6?
- 26. COM против родной DLL
- 27. Динамически вызывать COM-DLL
- 28. Как определить, является ли DLL совместимой?
- 29. Введение в COM DLL
- 30. Определить разницу между COM и .NET DLL в Powershell
Должно быть более надежным, чем сканирование реестра, а также обнаружение плохой установки. Тем не менее, зависит от того, стоит ли загружать DLL или создавать объект. –
Справа. Вероятно, лучше всего попробовать и использовать «подходящий» класс из библиотеки. И я предполагаю, что нет необходимости проверять, установлена ли библиотека COM, если вы не планируете делать что-то с библиотекой, поэтому загрузка ее для проверки на установку обычно не проблема ... – peSHIr