2009-03-06 25 views
21

Cho đến gần đây, chúng tôi đã vui vẻ sử dụng registration-free COM cho các thành phần gốc và .NET COM của chúng tôi. Tuy nhiên, chúng tôi gặp phải vấn đề lạ khi ứng dụng của chúng tôi bắt đầu gặp sự cố ngẫu nhiên trên Windows XP SP3 (nhưng không phải trên vista) sau khi chúng tôi chỉ thay đổi số phiên bản của một hội đồng .NET. (Bạn không chỉ ghét luật Murphy?)Có ai sử dụng thành công COM không đăng ký với các thành phần .NET không?

Sau nhiều ngày bị mất và nghiến răng, chúng tôi phát hiện ra sự cố là known bug in sxs.dll gây ra sự cố tham nhũng khi truy xuất thông tin về lớp .NET. Có bản sửa lỗi nóng khiến vấn đề biến mất nhưng bản sửa lỗi nóng không có ý định phân phối lại.

Chúng tôi rất lo ngại rằng có một lỗi khủng khiếp trong việc triển khai COM không cần đăng ký. Có ai ở đó thành công bằng cách sử dụng COM đăng ký miễn phí cho các thành phần .NET không? Bạn đã giải quyết vấn đề này như thế nào?

+0

+1 vấn đề quan trọng mà tôi không biết! BTW tôi có thể đề nghị bạn thêm thẻ "regfreecom" như thẻ đó là phổ biến hơn cho các câu hỏi COM miễn phí đăng ký? – MarkJ

+1

... thực ra tôi đã tự sửa lại nó ... hy vọng rằng OK – MarkJ

+0

Chắc chắn rồi. Các thẻ nhất quán hữu ích hơn. –

Trả lời

9

Sự cố này liên quan đến cách SxS tính toán kích thước của thông tin lớp học. Số phiên bản của hội đồng là một phần của thông tin này.

Vì nó đang làm việc với số phiên bản ứng cử viên phát hành, có lẽ giải pháp thay thế cho bạn là làm cho số phiên bản của bản phát hành có cùng độ dài với bản phát hành RC.

Nếu điều này không hiệu quả với bạn, có một quy trình được thiết lập để yêu cầu quyền phân phối lại cho hotfix. Tôi sẽ tham gia hỗ trợ khách hàng của Microsoft để theo đuổi tuyến đường này.

4

Chúng tôi đang sử dụng COM đăng ký miễn phí cho cả thành phần gốc và .NET. Chúng tôi đã quyết định sử dụng một số phiên bản lắp ráp cố định cho các thành phần này (chủ yếu để tránh làm lộn xộn sổ đăng ký khi lặp lại các thành phần .NET có số bản dựng động/*). Không lý tưởng nhưng chúng tôi có những cách khác để xác định phiên bản của một thành phần nhất định đang được sử dụng (chúng không bao giờ được vá riêng).

Điều đó nghe có vẻ giống như một vấn đề rất khó chịu! Đó là bài viết KB gần như làm cho nó có vẻ như sử dụng SxS là tùy chọn ... Theo như tôi biết đó là cách duy nhất để làm reg miễn phí COM?

+1

Cảm ơn bạn đã trả lời. Nghe về những người khác bằng cách sử dụng COM miễn phí cho. NET mà không có vấn đề ít nhất chỉ ra rằng chúng tôi có thể chỉ đơn giản là đã không may mắn. Lưu ý rằng những gì kích hoạt vấn đề cho chúng tôi có lẽ là một sự thay đổi về kích thước của hội đồng. Không thay đổi phiên bản có thể sẽ không bảo vệ bạn. –

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