Các phiên bản .NET có tương thích ngược không?


8

Trong những năm qua, các phiên bản .NET khác nhau đã được triển khai cho các máy khách của tôi thông qua WSUS. Bây giờ có vẻ như trên nhiều máy, các bản cài đặt này đã bị thay đổi và một số cập nhật bảo mật .NET nhất định không thành công.

Tôi đã xác minh rằng tôi có thể chạy công cụ dọn dẹp .NET để loại bỏ tất cả các cài đặt .NET trên máy khách và sau đó tôi có thể đẩy .NET 3.5 qua WSUS. Điều này dường như đã giải quyết được các vấn đề tôi gặp phải trên máy mà tôi đã thử.

Vì vậy, câu hỏi là: nếu tôi đã có .NET 3.5, có lý do nào để cài đặt các phiên bản trước không?

Câu trả lời:


14

Tương thích ngược là một thuật ngữ xấu để sử dụng. .NET 1.0, 1.1 và 2.0 là các khung riêng không có khả năng tương thích lẫn nhau. .NET 3.0 và 3.5 là các bộ siêu khung 2.0, sử dụng khung cơ sở .NET 2.0, với các dll bổ sung để cung cấp các tính năng bổ sung (3.0 bao gồm những thứ như WCF và WWF, 3.5 có những thứ như LINQ). Về yêu cầu ứng dụng:

  • Các ứng dụng 1.0 yêu cầu .NET 1.0 được cài đặt.
  • Ứng dụng 1.1 yêu cầu .NET 1.1 được cài đặt.
  • Các ứng dụng 2.0 yêu cầu .NET 2.0, 3.0 hoặc 3.5 để được cài đặt.
  • Các ứng dụng 3.0 yêu cầu .NET 3.0 hoặc 3.5 để được cài đặt.
  • Ứng dụng 3.5 yêu cầu .NET 3.5 được cài đặt.

Tôi khá chắc chắn rằng .NET 4.0 tuân theo cùng một mô hình như 2.0 - 3.5 (cơ sở 2.0 với các dll tính năng bổ sung). Vì vậy, cài đặt .NET 3.5 sẽ bao gồm bạn cho các ứng dụng .NET 2.0 - 3.5. Bạn sẽ cần cài đặt .NET 1.1 nếu bạn chạy bất kỳ ứng dụng 1.1 nào (tương tự cho các ứng dụng 1.0).


4
Tôi khá chắc chắn .net 4 là một CLR hoàn toàn mới chạy song song với bất kỳ phiên bản nào trước đây - nó không chỉ là một gói mở rộng như 3 / 3.5 là
Michael Haren

@Michael - Vẫn chưa tìm thấy thông tin dứt khoát, nhưng có vẻ như bạn đúng. Lỗi của tôi.
Evan M.

+1. Câu trả lời tuyệt vời. Tôi không thể nói với bạn bao nhiêu lần tôi đã phải giải thích điều này với các kỹ sư hỗ trợ của chúng tôi.
joeqwerty

2
msdn.microsoft.com/en-us/l Library / bb822049.aspx là một bài viết xác nhận những gì bạn nêu ở trên. Và vâng, 4.0 là độc lập, không phụ thuộc vào các phiên bản khác.
Larry Smithmier

2

.NET tương thích ngược với một mức độ, nhưng bạn phải so sánh giữa các phiên bản của khung. Những gì họ làm là nó tương thích song song, đó là vấn đề bạn gặp phải. Chắc chắn có một lý do để cài đặt các phiên bản khác. Một ứng dụng có thể được viết để nhắm mục tiêu một phiên bản cụ thể và nếu phiên bản này không có trên máy thì ứng dụng sẽ thất bại.


Đó là những gì tôi nghĩ. Tôi đoán tôi sẽ phải làm điều này trên máy bằng cơ sở máy.
Boden

@Boden: bạn thường có thể chuyển đổi ứng dụng để nhắm mục tiêu một khung khác, nhưng nó yêu cầu sửa đổi tệp app.config hoặc tệp web.config cho ứng dụng. Tuy nhiên, tôi rất khuyên bạn nên chống lại điều này, vì điều đó có thể giới thiệu một loạt các vấn đề cho ứng dụng và do đó hoàn toàn phá vỡ nó.
squillman

Bạn có thể sẽ nhận được một số bảo hiểm thực sự tốt bằng cách triển khai 3.5 ngay bây giờ và 4.0 khi nó được phát hành vào tháng Tư. 3.5 có cùng CLR là 2 vì vậy bạn không cần phải làm 2 và 3.5. Rất ít ứng dụng chạy 1.1 nữa nên bạn có thể tắt nó đi và chỉ đưa nó vào trong trường hợp hiếm hoi mà nó được yêu cầu.
Michael Haren

-1

Không, .net không tương thích ngược. MS có quyền thay đổi. 2.0 u đến 3.5 là IIRC, nhưng đó là một "khía cạnh may mắn" hơn. Các concet là có các khung al được cài đặt cần thiết và một ứng dụng nhắm vào khung mà nó được biên dịch - điều này cho phép MS dọn sạch các phiên bản mới và đưa ra các thay đổi không tương thích.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.