2011-08-11 40 views
11

Tôi đã kế thừa một số ứng dụng VB6 cũ hiện không thể được viết lại trong .NET. Các ứng dụng cũ này đều sử dụng ADO và biên dịch tốt trên máy XP của tôi. Kể từ khi chuyển sang một máy tính Windows 7, các ứng dụng biên dịch tốt, nhưng khi chúng được triển khai (trên các máy XP), tôi nhận được lỗi. Đây là một vấn đề được biết rằng bài viết này thảo luận về Microsoft:Nhận ứng dụng VB6 ADO hoạt động trong Windows 7

http://support.microsoft.com/kb/2517589

Bài báo đưa ra một lời giải thích rất chi tiết của một workaround, mà liên quan đến sao chép một ".tlb" tập tin và đăng ký nó sử dụng 'regtlibv12'. Khi tôi cố gắng để đăng ký nó, tôi nhận được thông báo lỗi này:

RegisterTypeLib của C: \ Program Files \ Common Files \ System \ ado \ msado60_Backcompat.tlb thất bại: 80029c4a

Tôi cũng đã cố gắng đăng ký này bằng cách sử dụng "regtlib.exe" cũ trong thư mục Windows, nhưng đã nhận lỗi này:

LoadTypeLib của C: \ Program Files \ Common Files \ System \ ado \ msado60_Backcompat.tlb thất bại: 80029c4a

Vì về điều này, tôi không thể tiếp tục nue với công việc xung quanh. Tôi sẽ đánh giá cao bất kỳ hướng dẫn bất cứ ai có thể cho tôi về cách đăng ký tập tin này đúng cách.

Cảm ơn bạn trước!

+4

Tôi ghét vấn đề này. Tôi hiện đang sử dụng máy ảo Windows XP chỉ để biên dịch các công cụ liên quan đến ADO. – GSerg

+1

Kiểm tra nhật ký sự kiện vì lý do lệnh regtlibv12 không thành công. Bạn cũng đã khởi chạy cửa sổ cmd của mình với tư cách là quản trị viên? – jac

+0

Điều này đã làm tôi bối rối trong một thời gian, thật tuyệt khi biết tôi không phải là người duy nhất! –

Trả lời

13

Đặt file .tlb ở một nơi thích hợp như

C:\Program Files\Common Files\System\ado 

Sau đó mở một dự án mới trong IDE VB6 (nâng lên, ví dụ như admin). Chọn Project | References ... sau đó nhấn nút Browse. Điều hướng đến tệp .TLB mới và mở tệp. Chọn hộp để chọn mục và đóng hộp thoại Tham khảo.

Nó phải được đăng ký ngay bây giờ.

Nếu tuyệt vọng, hãy thử VB Type Library Registration Utility.

+0

Đề xuất tuyệt vời, Bob. Tôi đã có thể thêm thành công tham chiếu trong dự án của mình. Tuy nhiên, nó không "đăng ký" nó cho các dự án khác - tôi phải thêm nó vào từng dự án một cách thủ công. Điều này tốt hơn 10 lần so với giải pháp trước của tôi (sử dụng máy ảo XP để xây dựng ứng dụng). Cảm ơn bạn rất nhiều vì giải pháp của bạn! – Loki70

+0

Đi tới 'C: \ Program Files (x86) \ Microsoft Visual Studio \ VB98' và nhấp chuột phải' VB6.EXE'. Chọn 'Run as administrator'. Lặp lại các bước từ câu trả lời để đăng ký vĩnh viễn TLB. – wqw

+0

wqw - Đề xuất của bạn hoạt động tốt. Khi tôi làm theo quy trình của bạn, TLB dường như đã được đăng ký vĩnh viễn. Cảm ơn bạn rất nhiều! – Loki70

8

Có thể bạn đã tải xuống tệp dưới dạng C:\temp\Msado60_Backcompat_i386.tlb và không đổi tên tệp. Ví dụ là để đăng ký C:\temp\Msado60_Backcompat.tlb (lưu ý, không _i386).

Chạy lệnh bằng tên tệp chính xác.

+0

Điểm tốt - Tôi KHÔNG đổi tên tệp sau khi tải xuống và hướng dẫn đề cập đến đăng ký nó mà không có "_i386". Khi tôi có nó hoạt động ngay bây giờ, tôi sẽ không hoàn tác bất cứ điều gì, nhưng đây là một gợi ý tốt. – Loki70

3

Chỉ cần cập nhật danh sách câu trả lời này dựa trên thông tin gần đây hơn, Microsoft phát hành KB 2640696 giải quyết vấn đề này một cách đơn giản hơn. Bản vá này giúp triển khai dễ dàng hơn trên các máy xây dựng của bạn và giải quyết vấn đề về hệ điều hành hạ xuống.

Ảnh hoàn chỉnh hơn về bản vá có thể được tìm thấy trên blog post sau đây.

Các vấn đề liên quan