Esiste un modo programmatico in C# per determinare se è stata installata una particolare DLL COM? O si tratta di eseguire la scansione del registro per il classId?Determina se una libreria COM (.DLL) è installata
risposta
Quello che ho fatto di solito (e che farebbe, se avessi bisogno di nuovo) è provare a creare un'istanza di oggetto di una classe che si conosce nella libreria COM, sia da ProgID o GUID, e controllando l'errore.
Provare e crearlo e gestire l'errore in caso contrario.
In Win32 CoCreateInstance
restituirà REGDB_E_CLASSNOTREG
se non installato (incluso, IIRC, se registrato ma il dll/exe che lo implementa viene quindi eliminato).
Sotto .NET l'assembly di interoperabilità COM generato genera alcuni errori (è necessario verificare ciò, non disporre di codice conveniente per verificare per quale tipo di eccezione). Nota. se manca l'assembly di interoperabilità, verrà trattato come assembly mancante che potrebbe causare un errore di caricamento dell'applicazione.
- 1. Come verificare se una DLL COM è registrata in C#
- 2. Come determinare se la DLL è COM o .NET?
- 3. Utilizzo di tlbexp.exe su una DLL COM
- 4. Clojure: Determina se una variabile è dichiarata
- 5. python: determina se una classe è nidificata
- 6. Determina se WindowServer è disponibile?
- 7. registrazione com dll in wix
- 8. Determina se l'oggetto è intero
- 9. Determina se LTE è attivato?
- 10. Determina se una vista è all'interno di una visualizzazione Popover
- 11. Verifica se l'applicazione è installata nel registro
- 12. Carica una DLL COM in fase di runtime?
- 13. Registrazione gratuita Com e dll manifesta
- 14. Determina se un websocket send() è finito
- 15. C++ determina se la classe è paragonabile
- 16. Determina se il modulo Magento è abilitato
- 17. Determina se una sottoview è visibile in un UIScrollView
- 18. Come registrare una DLL COM scritta in C# con Regsvr32?
- 19. COM msado15.dll Il programma è stato arrestato
- 20. Controlla se una libreria di DLL è già stata caricata? (Java)
- 21. Clojure: determina se esiste una funzione
- 22. Determina se un file è aperto
- 23. Applicazione Windows determina se TextBlock è tagliato
- 24. Determina se il negozio è aperto?
- 25. Utilizzare l'oggetto COM dalla DLL senza registro
- 26. Dov'è la libreria COM Bonjour?
- 27. Controllare se è installata la versione completa di .net?
- 28. È possibile chiamare una DLL C# da una DLL C?
- 29. WIX: come rilevare se l'applicazione di terzi è installata?
- 30. Verifica se l'app Google Maps è installata su iOS 6
Dovrebbe essere più robusto della scansione del registro, oltre al rilevamento di una cattiva installazione. Dipende se il caricamento della DLL o la creazione dell'oggetto è costoso, però. –
Giusto. Probabilmente è meglio provare e usare una classe "adatta" dalla libreria. E suppongo che non ci sia bisogno di controllare se la libreria COM è installata se non si intende fare almeno qualcosa con la libreria, quindi il caricamento per verificare l'installazione di solito non crea problemi ... – peSHIr