2012-01-10 10 views

Trả lời

28

Có, .NET 4.5 có phiên bản đánh dấu mới của CLR, bạn có thể đọc về các cải tiến tại;

http://blogs.microsoft.co.il/blogs/sasha/archive/2011/09/17/improvements-in-the-clr-core-in-net-framework-4-5.aspx

Để làm rõ; đây là một phiên bản mới của CLR thực sự là thay thế 4.0, vì vậy có nên gọi nó là bản cập nhật hay CLR mới có thể tranh chấp.

Để nói mà CLR phiên bản bạn đang chạy dưới, sử dụng

System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion() 
+2

Ý anh là gì bởi 'mới' ? Trong một nghĩa nào đó, mọi thay đổi đối với CLR có thể được xem là 'một CLR mới'. Tuy nhiên, .NET 4.5 chắc chắn không phải là bản phát hành song song. Nó sẽ thay thế .NET 4.0. Theo nghĩa đó, câu trả lời của Hans Passant là chính xác. – Steven

+0

Có, tôi đoán bạn có thể nhìn thấy cả hai cách, 4.5 yêu cầu một CLR nâng cấp, nếu bạn thấy nó là mới hay không là một vấn đề thảo luận. –

+0

Câu hỏi không rõ ràng. Đó là lý do tại sao cả câu trả lời của bạn và Hans đều chính xác, trong khi bạn nói chính xác :-) – Steven

16

Không, nó vẫn là phiên bản 4.0.30319. Bản sửa đổi mới của clr.dll và bạn bè sẽ thay thế các bản hiện có trên máy của bạn. Cùng một lược đồ như được sử dụng trong .NET 3.0, 3.5 và 3.5SP1. Kiểm tra xem liệu 4.5 được cài đặt có yêu cầu cùng phương pháp như các phiên bản đó không, bạn check the registry.

+0

Các tệp mà người ta sẽ xem xét 'CLR' ở đâu? –

+0

Họ đang ở trong C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 –

+0

Tôi không nghĩ rằng chúng ta có thể xem xét thư mục 'CLR' phải không? –

14

Có. version of the CLR changes từ 4.0.30319.269 đến 4.0.30319.17379. Vì vậy, CLR là mới, nhưng nó tương thích ngược với .NET 4.0 CLR. Bạn không cần phải biên dịch lại bất kỳ mã nào được viết và biên dịch bởi .NET v4.0.

Từ .NET Framework Versions and Dependencies trang trên MSDN:

.NET Framework 4.5 RC là một bản cập nhật tại chỗ thay thế .NET Framework 4 trên máy tính của bạn. Sau khi bạn cài đặt bản cập nhật này, các ứng dụng .NET Framework 4 của bạn sẽ tiếp tục chạy mà không yêu cầu biên dịch lại. Tuy nhiên, một số thay đổi trong Khuôn khổ .NET có thể yêu cầu thay đổi mã ứng dụng của bạn.

Bên cạnh đó, từ .NET Framework blog:

.NET Framework 4.5 là một bản cập nhật tại chỗ thay thế .NET Framework 4 (chứ không phải là một side-by-side cài đặt). Mục tiêu của chúng tôi là dành cho .NET 4.5 là hoàn toàn tương thích với các ứng dụng được xây dựng cho NET 4

Có một số thay đổi mà là không tương thích ngược. Xem trang Application Compatibility in the .NET Framework 4.5 RC trên MSDN.

Hướng dẫn chính thức của Microsoft và thực hành mã hóa tốt, không phải là để phát hiện các phiên bản CLR cụ thể. Thay vào đó, bạn nên phát hiện xem có một số tính năng nhất định không. Thay vì

public static bool IsDotNet45() 
{ 
    return Environment.Version.Major == 4 && 
      Environment.Version.Revision > 17000; 
} 

làm điều gì đó như:

public static bool SupportsReflectionContext() 
{ 
    // Class "ReflectionContext" exists from .NET 4.5 onwards. 
    return Type.GetType("System.Reflection.ReflectionContext", false) != null; 
} 
0

.NET Framework 4.5 cũng giống như một gói dịch vụ cho .NET Framework 4 với một số tính năng bổ sung.

+1

Điều đó có vẻ hơi kỳ quặc để mô tả nó. Tôi đoán đó là sự thật trong một số cách như một tương tự, nhưng tôi không biết nếu nó thực sự trả lời câu hỏi: là có một CLR mới. –

+0

Tôi không thấy vấn đề gì với nhận xét này. CLR 4.5 thực sự thay thế CLR 4 vì vậy nó cần được xem xét và cập nhật. – Yogee

2

Mặc dù tôi nghi ngờ rằng điều này có sẵn ở định dạng hiện tại tại thời điểm câu hỏi, ở đây là CLR Guide trên MSDN, nơi nó hiển thị tất cả phiên bản khung và phiên bản CLR mà chúng bao gồm. Tôi thấy nó rất hữu ích, vì vậy tôi nghĩ rằng tôi sẽ chia sẻ.

Cạnh .NET 4.5 nó tuyên bố rằng nó bao gồm CLR 4.

0

Scott Hanselman có bài đăng trên blog của mình giải quyết câu hỏi này. Bạn có thể tìm hiểu về nó ở đây:

http://www.hanselman.com/blog/NETVersioningAndMultiTargetingNET45IsAnInplaceUpgradeToNET40.aspx

Các ngắn của nó là có bản cập nhật cho CLR để cải thiện hiệu suất và thêm vào thư viện mới. CLR được sử dụng bởi .NET 4.5 tương thích với .NET 4. Nó được coi là một cập nhật nhỏ. Những cập nhật nhỏ này là những gì Microsoft gọi là bản cập nhật tại chỗ.