Có cách nào có lập trình trong C# để xác định xem một DLL COM cụ thể đã được cài đặt chưa? Hay đây là vấn đề quét registry cho classId?Lập trình xác định xem thư viện COM (.DLL) có được cài đặt
6
A
Trả lời
4
Những gì tôi thường làm (và sẽ làm, nếu tôi cần điều này một lần nữa) là cố gắng tạo một đối tượng của một lớp bạn biết là trong thư viện COM - hoặc bằng ProgID hoặc GUID - và kiểm tra thất bại.
0
Hãy thử và tạo và xử lý lỗi nếu không.
Dưới Win32 CoCreateInstance
sẽ trả lại REGDB_E_CLASSNOTREG
nếu chưa được cài đặt (bao gồm IIRC, nếu đã đăng ký nhưng sau đó dll/exe triển khai nó sẽ bị xóa).
Theo .NET, lắp ráp COM interop được tạo sẽ ném một số lỗi (cần phải kiểm tra điều này, không có mã thuận tiện để kiểm tra loại ngoại lệ nào). Chú thích. nếu hội đồng interop bị thiếu thì điều đó sẽ được coi là thiếu lắp ráp có thể dẫn đến lỗi tải ứng dụng.
Các vấn đề liên quan
- 1. Kiểm tra xem gói R có được cài đặt sau đó tải thư viện
- 2. Đăng ký một C#/VB.NET COM dll theo lập trình
- 3. Cài đặt và đăng ký win32 thư viện OpenSSL
- 4. Cài đặt Java.library.path có lập trình
- 5. thư viện xác nhận độc lập?
- 6. Làm thế nào tôi có thể lập trình xác định nếu Visual C++ Runtime 8.0 được cài đặt?
- 7. trình quản lý trình điều khiển unixodbc không thể mở thư viện được chỉ định khi cài đặt
- 8. Cài đặt hoặc Xem "Cài đặt Wi-Fi nâng cao" theo cách lập trình
- 9. Xác định xem gói có được cài đặt với API Yum Python không?
- 10. Xác định xem plugin InnoDB có được cài đặt trong MySQL
- 11. Cài đặt thư viện ổ cắm Lua
- 12. Cài đặt Thư viện Đăng nhập C++
- 13. Cài đặt thư viện Android SlidingMenu
- 14. Tăng C++ thư viện cài đặt
- 15. Hiểu C cài đặt chức năng thư viện cài sẵn
- 16. Trình duyệt web có lập trình Thư viện Java
- 17. Tăng cài đặt thư viện cho Codeblocks
- 18. Làm thế nào tôi có thể nhận được FFmpeg để xác định vị trí thư viện được cài đặt khi --sysroot trỏ đến một thư mục khác?
- 19. Ghi đè thư mục cài đặt mặc định cho Python bdist Trình cài đặt Windows
- 20. Làm thế nào để xác định nếu DLL là COM hoặc .NET?
- 21. Trình duyệt iPhone: Kiểm tra xem ứng dụng iPhone có được cài đặt từ trình duyệt
- 22. Làm cách nào để phát hiện xem thư viện gốc của JAI-ImageIo có được cài đặt
- 23. Có thể chỉ định các cài đặt ServiceStack.Text.JsConfig thành thư viện của bạn không?
- 24. Xác định xem ma trận có thể chia chéo được trong Ngôn ngữ lập trình R
- 25. Liên kết không được quản lý C++ DLL với quản lý C++ lớp thư viện DLL
- 26. Cách lập trình xác định phiên bản IE đã cài đặt từ tập lệnh
- 27. Kiểm tra xem Skype có được cài đặt
- 28. Có thư viện trình bao bọc hoàn chỉnh user32.dll có sẵn cho .NET không?
- 29. Biến toàn cầu trong thư viện/dll được chia sẻ, được chia sẻ qua quá trình
- 30. Trình cài đặt hoặc không có trình cài đặt?
Nên mạnh mẽ hơn quét registry, cộng với việc phát hiện cài đặt không đúng. Phụ thuộc vào việc tải DLL hoặc tạo đối tượng là tốn kém, mặc dù. –
Phải. Có lẽ tốt nhất để thử và sử dụng một lớp "phù hợp" từ thư viện. Và tôi đoán sẽ không cần phải kiểm tra xem thư viện COM có được cài đặt không nếu bạn không định làm gì ít nhất với thư viện, vì vậy sau đó tải nó để kiểm tra cài đặt thường không có vấn đề gì ... – peSHIr