Làm cách nào để tìm phiên bản .NET?


258

Làm cách nào để biết phiên bản .NET nào được cài đặt?

Tôi đang tìm kiếm một cái gì đó đơn giản như "java -version" mà tôi có thể gõ tại dấu nhắc lệnh và cho tôi biết (các) phiên bản hiện tại đã cài đặt.

Tôi tốt hơn thêm rằng Visual Studio có thể không được cài đặt - đây thường là điều mà tôi muốn biết về máy khách.


2
Đi để chạy và thực hiện lệnh này: wmic / không gian tên: \ root \ cimv2 đường dẫn win32_product trong đó "tên như '%%. NET %%'" có phiên bản
HENG Vongkol


Câu trả lời:


250

Chỉ cần gõ bất kỳ một trong các lệnh dưới đây để cung cấp cho bạn phiên bản mới nhất trong dòng đầu tiên.

1. CSC
2. GACUTIL /l ?
3. CLRVER

Bạn chỉ có thể chạy chúng từ dấu nhắc Lệnh của Visual Studio nếu bạn đã cài đặt Visual Studio hoặc nếu không thì bạn có SDK .NET framework, sau đó là dấu nhắc Lệnh SDK.

4. wmic product get description | findstr /C:".NET Framework"
5. dir /b /ad /o-n %systemroot%\Microsoft.NET\Framework\v?.*

Lệnh cuối cùng (5) sẽ liệt kê tất cả các phiên bản (trừ 4.5) của .NET được cài đặt, mới nhất trước tiên .
Bạn cần chạy lệnh thứ 4 để xem .NET 4.5 đã được cài đặt chưa.

Ba tùy chọn khác từ dấu nhắc lệnh PowerShell được đưa ra dưới đây.

6.   [environment]::Version
7.   $PSVersionTable.CLRVersion
8.   gci 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | gp -name Version,Release -EA 0 |
     where { $_.PSChildName -match '^(?!S)\p{L}'} | select PSChildName, Version, Release

Lệnh cuối cùng (8) sẽ cung cấp cho bạn tất cả các phiên bản, bao gồm .NET 4.5.


6
'CSC' sẽ chỉ hoạt động từ dấu nhắc lệnh của Visual Studio (theo mặc định). Nó cũng chỉ cung cấp cho bạn phiên bản tối đa của .NET framework, phiên bản của các mục tiêu của trình biên dịch. - Nếu bạn đã cài đặt VS2005 & VS2008, các phiên bản khác nhau của CSC sẽ báo cáo các phiên bản khác nhau.
Matt Lacey

15
cscxuất ra phiên bản của trình biên dịch C #, không phải phiên bản của .NET Framework.
Timwi

4
lệnh cuối cùng không trả về phiên bản 4.5 mặc dù tôi nghĩ rằng tôi đã cài đặt nó. Câu trả lời tại stackoverflow.com/questions/3487265/ đã bao gồm nó.
lmsurprenant

2
Lệnh cuối cùng không hiển thị phiên bản mới nhất. Chúng tôi có thể tra cứu phiên bản trong lệnh appwiz.cpl hoặc 'sản phẩm wmic' cũng hữu ích. windows-commandline.com/find-net-version-on-your-computer
Giri

11
Chúc mừng cho Số 8!
Lionet Chen

330

Có một cách dễ dàng hơn để cài đặt phiên bản .NET chính xác trên máy của bạn từ dấu nhắc cmd. Chỉ cần làm theo các hướng dẫn sau đây;

  1. Mở dấu nhắc lệnh (tức là Windows + R → gõ "cmd").
  2. Nhập lệnh sau, tất cả trên một dòng:

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP"

(Điều này sẽ liệt kê tất cả các phiên bản .NET.)

  1. Nếu bạn muốn kiểm tra phiên bản .NET 4 mới nhất.
  2. Nhập hướng dẫn sau, trên một dòng duy nhất:

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\full" /v version

Vui lòng tìm hình ảnh đính kèm bên dưới để xem nó được hiển thị như thế nào.

Nhập mô tả hình ảnh ở đây


4
thấy đây là phiên bản dễ nhất và chính xác nhất (với "* \ v4 \ Full" ở cuối) vì nó cũng có phiên bản nhỏ chỉ với một lệnh đơn giản.
Ignas Vyšnia

1
Đẹp. Muốn một cái gì đó sẽ hoạt động trên PC người dùng và đây là nó. Cảm ơn!
Kelly


6
Đẹp nhưng không hiển thị các khung 4.5, 4.6 và 4.7 được cài đặt trên máy Windows 7 của tôi :(
Zeek2

không hoàn toàn chính xác; Tôi xem trong Bảng điều khiển> Chương trình và Tính năng và không có dấu hiệu của .NET.; tuy nhiên, tôi chạy lệnh của bạn và nó cho tôi đầu ra HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v4.0. Có lẽ, .NET đã từng được cài đặt trên máy của tôi, chưa được phát hành, nhưng sổ đăng ký không được làm sạch
hâm mộ Newton


30

Trước khi đến dấu nhắc lệnh, vui lòng làm theo các bước sau ...

Mở Máy tính của tôi → nhấp đúp vào ổ đĩa " C: " → nhấp đúp chuột vào " Windows " → nhấp đúp chuột vào " Microsoft.NET " → nhấp đúp chuột vào " Khung " → Trong thư mục này, sẽ có các thư mục như "v1.0.3705" và / hoặc "v2.0.50727" và / hoặc "v3.5" và / hoặc "v4.0.30319".

Phiên bản .NET mới nhất của bạn sẽ nằm trong thư mục số v cao nhất, vì vậy nếu v4.0.30319 có sẵn sẽ giữ khung .NET mới nhất của bạn. Tuy nhiên, v4.0.30319 không có nghĩa là bạn có phiên bản .NET framework 4.0. Phiên bản v4.0.30319 là phiên bản trình biên dịch Visual C # của bạn, do đó, để tìm phiên bản .NET framework, hãy làm như sau.

Đi đến một dấu nhắc lệnh và làm theo đường dẫn này:

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 (hoặc bất cứ thư mục số v cao nhất)

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319> csc.exe

Đầu ra:

Microsoft (R) Visual C # Trình biên dịch phiên bản 4.0.30319.17929 cho Microsoft (R) .NET Framework 4.5 Bản quyền (C) Microsoft Corporation. Đã đăng ký Bản quyền.

Ví dụ dưới đây:

Nhập mô tả hình ảnh ở đây


2
Khá tốt, nhưng đầu ra ít nhất là khác nhau trên máy chủ của tôi - Không bao gồm tin nhắn "cho": lh4.googleusercontent.com/-p7Fu5GDj0cg/UywSqPTdQjI/AAAAAAAAALQ/,
Nenotlep

2
để thay đổi loại thư mục : cd C:\Windows\Microsoft.NET\Framework\v4.0.30319và sau đó gõ csc.exe, hy vọng sẽ giúp được ai đó.
shaijut 13/03/2016

1
Nó chủ yếu hiệu quả khi bạn đăng nhập bằng tài khoản người dùng hạn chế.
Rzassar

10

Câu trả lời này chỉ áp dụng cho .NET Core!

Nhập dotnet --versionvào thiết bị đầu cuối bạn chọn sẽ in ra phiên bản .NET Core SDK đang sử dụng.

Tìm hiểu thêm về dotnetlệnh ở đây .


15
Nó chỉ áp dụng cho .NET Core.
Sunil

9

Đối với phiên bản của khung được cài đặt, nó thay đổi tùy thuộc vào gói dịch vụ và hotfix nào bạn đã cài đặt. Hãy xem trang MSDN này để biết thêm chi tiết. Nó đề nghị tìm kiếm %systemroot%\Microsoft.NET\Frameworkđể có được phiên bản.

Môi trường.Version sẽ lập trình cung cấp cho bạn phiên bản CLR.

Lưu ý rằng đây là phiên bản của CLR và không nhất thiết phải giống với phiên bản mới nhất của khung bạn đã cài đặt (.NET 3.0 và 3.5 đều sử dụng v2 của CLR).


Môi trường.Version dường như cung cấp cho bạn phiên bản ứng dụng. Nói, từ LinqPad tôi muốn tìm phiên bản .NET, nó đang chạy và nó không phải là phiên bản .NET, mà là phiên bản LinqPad
Naomi

@Naomi: không, nó cung cấp phiên bản của CLR. Từ các tài liệu: "Lấy một đối tượng Phiên bản mô tả các số chính, phụ, xây dựng và sửa đổi của thời gian chạy ngôn ngữ chung." .
adrianbanks

Những gì tôi phải thấy trong đối tượng này? Tôi đang thấy 2.0.50727.5472 2 Nhỏ 0 Build 50727 Sửa đổi 5472 MajorRevision 0 MinorRevision 5472 không giống với phiên bản CLR thời gian chạy với tôi
Naomi

Tôi đã tải phiên bản mới nhất của LinqPad và bây giờ tôi đang nhận được 4.0.30319.18052 cho phiên bản. Phiên bản trước đã nhắm mục tiêu phiên bản .NET 3.5. Vì vậy, tôi vẫn còn một chút bối rối - nó thực sự hiển thị phiên bản CLR?
Naomi

1
@Naomi: Vâng, nó hiển thị phiên bản CLR. 2.0.50727.5472 là phiên bản của .Net 2.0 CLR, cũng được sử dụng cho .Net 3.0 và 3.5. 4.0.30319.18052 là .Net 4.0, có số phiên bản khác nhau.
adrianbanks

8

MSDN chi tiết ở đây rất độc đáo về cách kiểm tra nó từ registry:

Để tìm phiên bản .NET Framework bằng cách xem sổ đăng ký (.NET Framework 1-4)

  1. Trên menu Bắt đầu, chọn Chạy.
  2. Trong hộp Mở, nhập regedit.exe. Bạn phải có thông tin quản trị để chạy regedit.exe.
  3. Trong Registry Editor, mở khóa con sau:

    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP

Các phiên bản đã cài đặt được liệt kê dưới khóa con NDP. Số phiên bản được lưu trong mục Phiên bản. Đối với .NET Framework 4, mục nhập Phiên bản nằm dưới Khóa con hoặc Toàn bộ khóa con (theo NDP) hoặc dưới cả hai khóa con.

Để tìm phiên bản .NET Framework bằng cách xem sổ đăng ký (.NET Framework 4.5 trở lên)

  1. Trên menu Bắt đầu, chọn Chạy.
  2. Trong hộp Mở, nhập regedit.exe. Bạn phải có thông tin quản trị để chạy regedit.exe.
  3. Trong Registry Editor, mở khóa con sau:

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

Lưu ý rằng đường dẫn đến khoá con đầy đủ bao gồm khung con Netkey thay vì .NET Framework

Kiểm tra giá trị DWORD có tên Release. Sự tồn tại của DWORD phát hành chỉ ra rằng .NET Framework 4.5 hoặc mới hơn đã được cài đặt trên máy tính đó.

nhập mô tả hình ảnh ở đây

Lưu ý : Hàng cuối cùng trong ảnh chụp nhanh ở trên có clip đã đọc On all other OS versions: 461310. Tôi đã cố gắng hết sức để tránh thông tin bị cắt xén khi chụp ảnh màn hình nhưng cái bàn quá lớn.


6

Nếu bạn mở một dấu nhắc lệnh và gõ hai lệnh sau, tất cả các phiên bản khung được cài đặt trên máy hiện tại sẽ được liệt kê (mỗi lệnh được lưu trong một thư mục riêng trong thư mục này).

cd %systemroot%\Microsoft.NET\Framework

dir /A:D

8
Không được đề xuất vì điều này có thể gây hiểu nhầm. Nếu bạn đã nâng cấp 4.0 => 4.5.2, thư mục có thể chỉ hiển thị v4.0.30319. Xem ví dụ của Sunimal Kaluarachchi.
Dinah

6

Chỉ cần gõ như sau trong dòng lệnh:

dir /b /ad /o-n %systemroot%\Microsoft.NET\Framework\v?.*

Phiên bản dotnet của bạn sẽ được hiển thị là số cao nhất.


1
Nó hiển thị tất cả các phiên bản cho đến 4.0, nhưng ví dụ không phải 4.5.
pinowthebird

4

Để chỉ nhận (các) phiên bản đã cài đặt tại dòng lệnh, tôi khuyên bạn nên sử dụng phiên bản mạng .

  • Nó chỉ là một nhị phân duy nhất .
  • Nó sử dụng các hướng dẫn được cung cấp cho Microsoft của tôi để có được thông tin phiên bản.
  • Nó không yêu cầu SDK phải được cài đặt.
  • Hoặc dấu nhắc lệnh của Visual Studio.
  • Nó không yêu cầu bạn sử dụng regedit và tự tìm kiếm các khóa registry. Bạn thậm chí có thể dẫn đầu ra trong một công cụ dòng lệnh nếu bạn cần.

Mã nguồn có sẵn trên github.com

Tiết lộ đầy đủ: Tôi tự tạo ra công cụ này vì thất vọng.


Nếu bộ thông tin phiên bản (không đầy đủ) đó đủ tốt cho bạn, sẽ tiếp thêm sức mạnh cho bạn.
Dan Esparza

@Shiva Bạn chỉ ra rằng bạn nghĩ rằng lệnh đó hiển thị tất cả mọi thứ và tôi không đồng ý với bạn. Vui lòng xem liên kết với các hướng dẫn do Microsoft cung cấp. Ví dụ: Truy vấn của bạn không hiển thị Tôi đã cài đặt .NET 4.6.1. Ngoài ra, nó cho biết tôi đã cài đặt 'CDF, đây không phải là phiên bản .NET framework.
Dan Esparza

4

Nếu bạn làm điều này khá thường xuyên (như tôi có xu hướng làm), bạn có thể tạo một lối tắt trên màn hình của mình như sau:

  1. Nhấp chuột phải vào màn hình nền và chọn MớiPhím tắt .
  2. Trong trường vị trí, dán chuỗi này: powershell.exe -noexit -command "gci 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse | gp -name Version,Release -EA 0 | where { $_.PSChildName -match '^(?!S)\p{L}'} | select PSChildName, Version, Release"(đây là từ bài đăng của Binoj Antony ).
  3. Nhấn tiếp theo . Đặt tên cho phím tắt và Kết thúc .

(LƯU Ý: Tôi không chắc chắn nếu điều này hoạt động cho 4.5, nhưng tôi có thể xác nhận rằng nó hoạt động cho 4.6 và các phiên bản trước 4.5.)


Phiên bản 1.01.1 không hiển thị trong khóa Cài đặt NET Framework , mặc dù tồn tại trong thư mục% systemroot% \ Microsoft.NET \ Framework \.
samis

4

Đây là tập lệnh Power Shell mà tôi đã sử dụng bằng cách tham khảo:

https://stackoverflow.com/a/3495491/148657

$Lookup = @{
    378389 = [version]'4.5'
    378675 = [version]'4.5.1'
    378758 = [version]'4.5.1'
    379893 = [version]'4.5.2'
    393295 = [version]'4.6'
    393297 = [version]'4.6'
    394254 = [version]'4.6.1'
    394271 = [version]'4.6.1'
    394802 = [version]'4.6.2'
    394806 = [version]'4.6.2'
    460798 = [version]'4.7'
    460805 = [version]'4.7'
    461308 = [version]'4.7.1'
    461310 = [version]'4.7.1'
    461808 = [version]'4.7.2'
    461814 = [version]'4.7.2'
    528040 = [version]'4.8'
    528049 = [version]'4.8'
}

# For One True framework (latest .NET 4x), change the Where-Oject match 
# to PSChildName -eq "Full":
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse |
  Get-ItemProperty -name Version, Release -EA 0 |
  Where-Object { $_.PSChildName -match '^(?!S)\p{L}'} |
  Select-Object @{name = ".NET Framework"; expression = {$_.PSChildName}}, 
@{name = "Product"; expression = {$Lookup[$_.Release]}}, 
Version, Release

Kịch bản trên sử dụng sổ đăng ký và cung cấp cho chúng tôi số cập nhật Windows cùng với .Net Framework được cài đặt trên máy.

Tham khảo: https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed#to-find-net-framework-versions-by- truy vấn-đăng ký-trong-mã-net-framework-45-và sau đó

Đây là kết quả giống nhau khi chạy tập lệnh đó trên hai máy khác nhau

  1. Trong đó .NET 4.7.2 đã được cài đặt:

nhập mô tả hình ảnh ở đây

  1. Trong đó .NET 4.7.2 chưa được cài đặt:

nhập mô tả hình ảnh ở đây


3

Trời ơi, quá nhiều thứ để tìm phiên bản của khung .net đã cài đặt?

Windows> Tìm kiếm> Trình cài đặt Visual Studio> cho phiên bản VS đã cài đặt, nhấn vào Thêm> Sửa đổi> Các thành phần riêng lẻ và xem tại đó:

nhập mô tả hình ảnh ở đây


2

Hãy thử .NET Checkerbởi Scott Hanselman.


1
Một gợi ý tuyệt vời. OP đặc biệt chỉ ra một công cụ dòng lệnh, mặc dù.
Dan Esparza

1

clrverlà một trong những tuyệt vời. Chỉ cần thực hiện nó trong dấu nhắc .NET và nó sẽ liệt kê tất cả các phiên bản khung có sẵn.


3
Công cụ này không chỉ yêu cầu .NET framework được cài đặt mà còn cả Visual Studio. OP chỉ ra rằng Visual Studio có thể không được cài đặt.
Dan Esparza

Và nó không hiển thị tất cả (hoặc thậm chí hầu hết) các phiên bản. Đối với PC Win7 của tôi chỉ hiển thị V2.0 & 4.0 nhưng một số phương pháp khác ở trên cũng hiển thị các phiên bản: 3.0, 3.5, 4.5, 4.5.1, 4.5.2, 4.6.1 và 4.7.
Zeek2

1
@Zeek clrverhiển thị (các) thời gian chạy .net có thể được chia sẻ giữa các phiên bản .net . Xem Làm thế nào để: Xác định nào .NET Framework phiên bản được cài đặtXác định phiên bản .NET bạn đang chạy (2.0, 4.5, 4.5.1 hoặc 4.5.2)
samis

1

Đối với bất kỳ ai chạy Windows 10 1607 và đang tìm kiếm .net 4.7 . Bỏ qua tất cả những điều trên.

Nó không có trong thư mục Registry , C: \ Windows \ Microsoft.NET hoặc danh sách Chương trình đã cài đặt hoặc màn hình WMIC của cùng danh sách đó.

Tìm "bản cập nhật đã cài đặt" KB3186568.


1
Nó nằm trong sổ đăng ký, như tài liệu của Microsoft . HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full- Releasegiá trị sẽ là 4607984,7 trên W10 1607.
Richard Deeming

Không phải vậy. Phím "Đầy đủ" thậm chí không tồn tại.
skrie

1
Nó là, và nó làm. Tôi đang chạy 1607 và tôi đang xem Fullchìa khóa ngay bây giờ!
Richard Deeming


0

Nếu bạn đang phát triển một số ứng dụng .Net (cho ứng dụng web cũ), bạn có thể tạo 1 dòng mã lỗi (như gọi tên hàm sai) và tải lại trang của bạn, phiên bản .Net sẽ được hiển thịnhập mô tả hình ảnh ở đây


Có lẽ không phải là cách sạch nhất, nhưng thực sự là một lựa chọn tôi hoàn toàn quên mất. Một đơn giản GACUTIL /l ?trong powershell (nhà phát triển) của bạn mang lại kết quả tương tự.
B - rian

-1

Có một cách dễ dàng hơn để cài đặt phiên bản .NET chính xác trên máy của bạn từ dấu nhắc cmd. Chỉ cần làm theo các hướng dẫn sau đây;

Mở dấu nhắc lệnh (tức là Windows + R → gõ kiểu cm cmd) và nhập lệnh sau, tất cả trên một dòng:% Windir% \ Microsoft.NET \ FrameWork, sau đó điều hướng đến thư mục có số phiên bản mới nhất.

Tham khảo http://dotnettec.com/check-dot-net-framework-version/


Tôi đang gặp lỗi này trong khi cố gắng làm theo câu trả lời của bạn:'C:\Windows\Microsoft.NET\FrameWork' is not recognized as an internal or external command, operable program or batch file.
pavjel
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.