Thư mục .NET Framework 4.5 ở đâu?


146

Tôi đã cài đặt Windows 8, Visual Studio 2012 nhưng không có thư mục v4.5 %WINDIR%\Microsoft.NET\Framework.

Tôi đã làm điều gì sai, hay .NET 4.5 khác với những người khác?

Nếu đó là vì tôi chưa cài đặt các công cụ, thì có một bộ công cụ khác để tải xuống không? Theo như tôi có thể nói, tôi có thể xây dựng các ứng dụng .NET 4.5.


1
@Gustavo, vui lòng dừng chỉnh sửa thẻ đó thành câu hỏi. Tên sản phẩm không phải là 2011, mà là 11 và đã có thẻ hiện có.
Charles

1
.NET 4.5 là một sự thay thế tại chỗ. Tham khảo bài viết trên blog này .
Vijay

Câu trả lời:


152

.NET 4.5 là một sự thay thế tại chỗ cho 4.0 - bạn sẽ tìm thấy các hội đồng trong thư mục 4.0.

Xem các blog của Rick StrahlScott Hanselman về chủ đề này.

Bạn cũng có thể tìm thấy các phiên bản cụ thể trong:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework

1
Cảm ơn, nhưng những gì về trang này từ MSDN. msdn.microsoft.com/en-us/l Library / bb39428 . Nó đề cập đến một thư mục 4.5.0.0?
Nick Randell

@NickRandell - Bạn đã hỏi về các hội đồng. Đó là bài viết về SDK / công cụ.
Oded

@NickRandell - Và vì đó không phải trên hệ thống của bạn, hãy xem phiên bản của các hội đồng trong thư mục 4.0 để xem chúng có thực sự là 4.5 không (như được mô tả trong các blog được liên kết).
Oded

Tôi chắc chắn đã có 4,5 trong các thư mục đó, nhưng có ý tưởng nào về các công cụ không?
Nick Randell

5
FYI: Tôi vừa cài đặt v4.5.2 trên Windows Server 2008 R2. Các hội đồng thực sự có trong C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319, như được chỉ ra bởi Jon Skeet.
harsimranb 17/03/2015

86

EDIT: Câu trả lời này là chính xác cho đến giữa năm 2013, nhưng bạn có thể có một phiên bản gần đây hơn kể từ khi thay đổi msbuild lớn . Xem câu trả lời từ Jonny Leeds để biết thêm chi tiết.

Phiên bản dưới C:\Windows\Microsoft.NET\Framework\v4.0.30319thực tế .NET 4.5. Đó là một chút kỳ lạ, nhưng chắc chắn mscorlibcó chứa AsyncTaskMethodBuildervv được sử dụng cho async.

.NET 4.5 ghi đè hiệu quả .NET 4.


Điều này vẫn đúng với bản phát hành chính thức?
Earlz

@Kiquenet: Tôi nghi ngờ rằng đã bị xóa bản phát hành cuối cùng; nó có sẵn như là một gói nuget riêng biệt.
Jon Skeet

điều này gần như đúng - nhưng msbuild đã di chuyển - xem bài đăng của tôi dưới đây
JonnyRaa

@JonnyLeed: Cảm ơn - đã thêm một tài liệu tham khảo cho bài viết trên blog.
Jon Skeet

28

.NET 4.5 không phải là phiên bản song song, nó thay thế các bản lắp ráp cho 4.0. Giống như .NET 3.0, 3.5 và 3.5SP1 đã thay thế các bản lắp ráp cho 2.0. Và thêm một số cái mới. Phiên bản CLR vẫn là 4.0.30319. Bạn chỉ quan tâm đến các hội đồng tham chiếu, chúng nằm trong các tập tin c: \ chương trình \ tham chiếu.


Tôi đã nghĩ 3.0 và 3.5 chỉ cần thêm các hội đồng - không thay thế (giả sử) mscorlib như 4.5. Hoặc điều đó có thể đúng với 3.0 nhưng không phải 3.5?
Jon Skeet

@Jon - không, họ thực sự đã được thay thế. Điều đó gây ra một số đau khổ vì [Hội đồng] không thay đổi. Quá tải WaitHandle.WaitOne (int) được thêm vào đặc biệt nổi tiếng. Có các biện pháp đối phó trong .NET 4 để tránh vấn đề này, các hội đồng tham chiếu không còn là bản sao của hội đồng GAC-ed. Chúng đặc biệt, chúng không chứa IL.
Hans Passant

Để thử nghiệm trên nhiều phiên bản, có sự thay thế dễ dàng nào cho các máy ảo không? Và Windows Update có tự động cập nhật lên 4.5 theo mặc định không?
Tuntable

2
Điều đó trông giống như một câu hỏi, không phải là một bình luận. Câu hỏi ở đầu trang, nhấp vào nút Hỏi câu hỏi để đặt nó ở đó.
Hans Passant

17

Trong khi các câu trả lời trên là chính xác, đáng chú ý là MSBuild đã thay đổi và nó không còn xuất hiện với khung .net, nó đi một mình hoặc với studio trực quan. Kết quả là các nhị phân của nó đã di chuyển ... vì vậy cái bạn nhận được trong thư mục 4.0.303619 thực sự là cái cũ!

Tôi vừa bị bắt gặp bởi điều này - Tôi thấy các chuyển hướng liên kết tự động chỉ hoạt động khi chạy từ VisualStudio chứ không phải khi chạy msbuild từ dòng lệnh ... đầu mối là các chuyển hướng ràng buộc đã được thêm vào trong VS 2013 (cho lần đọc đó. khung lưới 4.5). Nếu bạn mở một dấu nhắc lệnh vs, bạn sẽ thấy nó bây giờ lấy nó từ các tệp chương trình như bài viết khác đề cập. Trong khi đó tôi đang sử dụng một tệp bó trên đường dẫn của tôi được liên kết với phiên bản cũ.

Số phiên bản

Theo khung:

PS C:\Windows\Microsoft.NET\Framework\v4.0.30319> .\msbuild.exe -version
Microsoft (R) Build Engine version 4.0.30319.33440
[Microsoft .NET Framework, version 4.0.30319.34014]
Copyright (C) Microsoft Corporation. All rights reserved.

4.0.30319.33440PS C:\Windows\Microsoft.NET\Framework\v4.0.30319>

Theo tập tin chương trình:

PS C:\Program Files (x86)\MSBuild\12.0\Bin> .\MSBuild.exe -version
Microsoft (R) Build Engine version 12.0.21005.1
[Microsoft .NET Framework, version 4.0.30319.34014]
Copyright (C) Microsoft Corporation. All rights reserved.

12.0.21005.1PS C:\Program Files (x86)\MSBuild\12.0\Bin>

5

Trang web không chính xác và tôi đã chỉ ra điều này cho MS và họ sẽ thay đổi nó.

Như đã nêu ở trên .NET 4.5 là bản nâng cấp tại chỗ 4.0, do đó bạn sẽ chỉ có Microsoft.NET \ Framework \ v4.0.30319.

ToolVersion cho MSBuild vẫn ở mức "4.0".


3

Cách chính thức để tìm hiểu xem bạn đã cài đặt 4.5 (chứ không phải 4.0) trong các khóa đăng ký:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full

Relesae DWORD cần phải lớn hơn 378675 Đây là tài liệu Microsoft cho nó

Tất cả các câu trả lời khác về việc kiểm tra phiên bản nhỏ sau 4.0.30319.xxxxx có vẻ đúng mặc dù (msbuild.exe -version hoặc thuộc tính của clr.dll), tôi chỉ cần một cái gì đó được ghi lại (không phải blog)


Lưu ý \ v4 \, không phải \ v4.0 \ khác!
Tuntable
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.