2010-08-04 26 views
5

Tôi đã cài đặt các phiên bản .NET Framework khác nhau (phiên bản 1.1 đến 4.0) trên một máy từ xa chạy XP Professional. Tôi đã cài đặt phần mở rộng phản ứng quá cho biện pháp tốt.Tại sao System.Threading.dll bị thiếu trong Windows Assembly?

Tôi cũng có một ứng dụng mà hoạt động trên máy tính của tôi bởi vì nó tham chiếu System.Threading tìm thấy ở đây: C: \ Program Files \ Microsoft phản Extensions \ redist \ desktopV2 \ System.Threading.dll

Tôi có hai các phiên bản của DLL trong GAC cũng vậy.

Hai câu hỏi:

i) Tại sao Visual Studio quyết định rằng đây là phiên bản (chẳng hạn) để tham khảo khi tôi đã chọn từ danh sách chứ không phải duyệt đến các tập tin?

ii) Tại sao System.Threading không tồn tại trên máy từ xa? (Tôi nghĩ đó là một phần cốt lõi của khung)

Cảm ơn

Trả lời

8

System.Threading.dll đã được bổ sung trong .NET 4.0 (mặc dù không gian tênSystem.Threading đã được khoảng từ v1). Rx bao gồm một phiên bản của System.Threading.dll được backported để .NET 3.5 SP1.

Có vẻ như bạn đang nhắm mục tiêu .NET 3.5. Trong trường hợp này, thời gian chạy sẽ không tải một System.Threading.dll chỉ 4.0 (rõ ràng). Tải của bạn sẽ thất bại, trừ khi bạn bao gồm phiên bản Rx của System.Threading.dll cùng với chương trình của bạn.

Để trả lời những câu hỏi trực tiếp:

  1. Rx đăng ký danh bạ riêng như phần mở rộng khuôn khổ. Đây là cách nó được tìm thấy bởi VS.
  2. System.Threading.dll chỉ được bao gồm trong .NET 4.0, vì vậy nếu bạn đang nhắm mục tiêu một khuôn khổ trước đó, nó sẽ không được tìm thấy.

Để khắc phục sự cố của bạn, hãy nhắm mục tiêu chương trình .NET 4.0 hoặc bao gồm System.Threading.dll của Rx cùng với chương trình của bạn.

P.S. Tôi khuyên bạn nên nâng cấp lên phiên bản mới nhất của Rx. Thư mục desktopV2 chưa được sử dụng cho một số bản phát hành gần đây nhất. Khi nâng cấp, gỡ cài đặt phiên bản cũ trước - nó hoạt động tốt hơn theo cách đó.

+1

+1: Chỉ cần đánh tôi. –

+0

Ổn định. Thay đổi hình ảnh có thể mất tối đa 24 giờ. Ngoài ra, làm thế nào về một số trợ giúp với các dll mất tích? – ofraski

+0

@sarfeast: Nếu bạn nhắm mục tiêu .NET 4.0, sau đó DLL sẽ được tải chính xác từ GAC. Nếu bạn nhắm mục tiêu .NET 3.5, sau đó bao gồm phiên bản Rx của DLL. –

0

i) Danh sách tài liệu tham khảo nên hiển thị tất cả các phiên bản của các thành phần đã đăng ký, bạn có được lựa chọn phiên bản cụ thể, hoặc nếu nó không có trong danh sách , nó phải được hủy đăng ký hoặc bị xóa.

ii) System.Threading tồn tại since framework 1 và nếu nó không có trên máy, nó phải được hủy đăng ký hoặc bị xóa.

Tôi không biết Extensions phản ứng, và sau khi một số tìm kiếm tôi không thể tìm thấy nhiều thông tin cho dù nó không loại bỏ System.Threading.dll

+0

i) Tôi đồng ý ii) Tôi ~ 90% một số DLL này chưa được đăng ký hoặc bị xóa. Tôi không thể nghĩ tại sao nó lại xảy ra. – ofraski

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