Jak znaleźć wersję .NET?


258

Jak sprawdzić, która wersja .NET jest zainstalowana?

Szukam czegoś tak prostego jak „java -version”, który mogę wpisać w wierszu polecenia i który informuje mnie o zainstalowanej wersji (wersjach).

Lepiej dodam, że Visual Studio może nie zostać zainstalowany - zazwyczaj jest to coś, co chcę wiedzieć o komputerze klienckim.


2
Idź uruchomić i wykonać to polecenie: wmic / namespace: \\ root \ cimv2 ścieżka win32_product gdzie „nazwa jak '%%. NET %%'” pobierz wersję
HENG Vongkol


Odpowiedzi:


250

Wystarczy wpisać dowolne z poniższych poleceń, aby uzyskać najnowszą wersję w pierwszym wierszu.

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

Można je uruchomić tylko z wiersza polecenia programu Visual Studio, jeśli masz zainstalowany program Visual Studio, lub jeśli masz zestaw .NET Framework SDK, a następnie wiersz polecenia zestawu SDK.

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

Ostatnie polecenie (5) wyświetli wszystkie wersje (z wyjątkiem 4.5) .NET zainstalowane, najnowsze jako pierwsze .
Musisz uruchomić 4. polecenie, aby sprawdzić, czy .NET 4.5 jest zainstalowany.

Kolejne trzy opcje z wiersza polecenia programu PowerShell podano poniżej.

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

Ostatnie polecenie (8) daje wszystkie wersje, w tym .NET 4.5.


6
„CSC” będzie działać tylko z wiersza polecenia Visual Studio (domyślnie). Zapewni także tylko maksymalną wersję frameworku .NET, do którego ta wersja kompilatora jest przeznaczona. - Jeśli masz zainstalowane VS2005 i VS2008, różne wersje CSC będą zgłaszać różne wersje.
Matt Lacey,

15
cscwypisuje wersję kompilatora C #, a nie wersję .NET Framework.
Timwi

4
ostatnia komenda nie zwróciła wersji 4.5, chociaż myślę, że mam ją zainstalowaną. Zawierała odpowiedź na stackoverflow.com/questions/3487265/… .
lmsurprenant

2
Ostatnie polecenie nie wyświetla najnowszej wersji. Możemy wyszukać wersję w appwiz.cpl lub pomocne jest też polecenie „wmic product”. windows-commandline.com/find-net-version-on-your-computer
Giri

11
Pozdrowienia dla numeru 8!
Lionet Chen

330

Jest łatwiejszy sposób na uzyskanie dokładnej wersji .NET wersji zainstalowanej na twoim komputerze z polecenia cmd. Postępuj zgodnie z poniższymi instrukcjami;

  1. Otwórz wiersz polecenia (tzn. Windows + R → wpisz „cmd”).
  2. Wpisz następujące polecenie, wszystkie w jednym wierszu:

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

(Spowoduje to wyświetlenie wszystkich wersji .NET.)

  1. Jeśli chcesz sprawdzić najnowszą wersję .NET 4.
  2. Wpisz następującą instrukcję, w jednym wierszu:

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

Poniżej znajduje się załączony obraz, aby zobaczyć, jak to pokazano.

Wpisz opis zdjęcia tutaj


4
uznałem, że jest to najłatwiejszy i najbardziej precyzyjny (z „* \ v4 \ Full” na końcu), ponieważ pobiera również wersję pomocniczą za pomocą jednego prostego polecenia.
Ignas Vyšnia

1
Miły. Chciałem czegoś, co działałoby na komputerze użytkownika i to jest to. Dzięki!
Kelly,


6
Ładne, ale nie pokazuje ram 4.5, 4.6 i 4.7, które są zainstalowane na moim komputerze z systemem Windows 7 :(
Zeek2,

niezupełnie dokładne; Patrzę w Panelu sterowania> Programy i funkcje i nie ma śladu .NET .; jednak uruchamiam polecenie i daje mi wynik HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v4.0. Prawdopodobnie .NET został kiedyś zainstalowany na moim komputerze, został odinstalowany, ale rejestr nie został wyczyszczony
wentylator Newtona 01


30

Przed przejściem do wiersza polecenia wykonaj następujące kroki ...

Otwórz Mój komputer → dwukrotnie kliknij „ C: ” dysk → dwukrotnie kliknij „ Windows ” → dwukrotnie kliknij „ Microsoft.NET ” → dwukrotnie kliknij „ Framework ” → W tym folderze będą znajdować się foldery takie jak „v1.0.3705” i / lub „v2.0.50727” i / lub „v3.5” i / lub „v4.0.30319”.

Twoja najnowsza wersja .NET będzie w folderze o najwyższym numerze v, więc jeśli dostępna jest wersja 4.0.30319, będzie ona zawierać najnowszą platformę .NET. Jednak wersja 4.0.30319 nie oznacza, że ​​masz platformę .NET w wersji 4.0. Wersja 4.0.30319 jest wersją kompilatora Visual C #, dlatego aby znaleźć wersję platformy .NET, wykonaj następujące czynności.

Przejdź do wiersza polecenia i podążaj tą ścieżką:

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 (lub inny folder o najwyższym numerze v)

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

Wynik:

Microsoft (R) Visual C # Compiler wersja 4.0.30319.17929 dla Microsoft (.) .NET Framework 4.5 Copyright (C) Microsoft Corporation. Wszelkie prawa zastrzeżone.

Przykład poniżej:

Wpisz opis zdjęcia tutaj


2
Całkiem dobrze, ale wynik jest inny, przynajmniej na moim serwerze - nie uwzględniono komunikatu „za”: lh4.googleusercontent.com/-p7Fu5GDj0cg/UywSqPTdQjI/AAAAAAAAALAL/...
Nenotlep

2
zmienić typ katalogu : cd C:\Windows\Microsoft.NET\Framework\v4.0.30319a następnie wpisz csc.exe, nadzieja pomaga komuś.
shaijut

1
Jest to głównie skuteczne, gdy logujesz się przy użyciu konta z ograniczonym dostępem.
Rzassar

10

Ta odpowiedź dotyczy tylko .NET Core!

Pisanie na maszynie dotnet --version wybranego terminalu spowoduje wydrukowanie używanej wersji zestawu .NET Core SDK.

Dowiedz się więcej o dotnetpoleceniu tutaj .


15
Ma zastosowanie tylko do .NET Core.
Sunil

9

W przypadku zainstalowanej wersji frameworka różni się w zależności od zainstalowanych dodatków Service Pack i poprawek. Więcej informacji znajdziesz na tej stronie MSDN . Sugeruje zajrzenie w %systemroot%\Microsoft.NET\Frameworkcelu uzyskania wersji.

Environment.Version programowo da ci wersję CLR.

Zauważ, że jest to wersja CLR i niekoniecznie taka sama jak najnowsza wersja zainstalowanego frameworka (.NET 3.0 i 3.5 używają wersji 2 CLR).


Environment.Version wydaje się dawać wersję aplikacji. Powiedzmy, że z LinqPad chcę znaleźć wersję .NET, na której działa i nie daje mi ona wersji .NET, ale wersję LinqPad
Naomi

@Naomi: nie, podaje wersję CLR. Z dokumentacji: „Pobiera obiekt Version, który opisuje numery główne, drobne, kompilacje i wersje wspólnego środowiska uruchomieniowego”. .
adrianbanks

Co mam zobaczyć w tym obiekcie? Widzę 2.0.50727.5472 2 Drobne 0 Kompilacja 50727 Wersja 5472 MajorRevision 0 MinorRevision 5472, który nie wygląda mi na środowisko uruchomieniowe w wersji CLR
Naomi

Załadowałem najnowszą wersję LinqPad i teraz otrzymuję 4.0.30319.18052 dla tej wersji. Poprzednia wersja była przeznaczona dla wersji .NET 3.5. Więc nadal jestem trochę zdezorientowany - czy rzeczywiście pokazuje wersję CLR?
Naomi

1
@Naomi: Tak, pokazuje wersję CLR. 2.0.50727.5472 to wersja .Net 2.0 CLR, która jest również używana dla .Net 3.0 i 3.5. 4.0.30319.18052 to .Net 4.0, który ma inny numer wersji.
adrianbanks

8

MSDN szczegółowo opisuje tutaj, jak to sprawdzić w rejestrze:

Aby znaleźć wersje .NET Framework, przeglądając rejestr (.NET Framework 1-4)

  1. W menu Start wybierz Uruchom.
  2. W polu Otwórz wpisz regedit.exe. Aby uruchomić regedit.exe, musisz mieć poświadczenia administracyjne.
  3. W Edytorze rejestru otwórz następujący podklucz:

    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP

Zainstalowane wersje są wymienione w podkluczu NDP. Numer wersji jest zapisany we wpisie Wersja. W przypadku .NET Framework 4 pozycja Wersja znajduje się w podkluczu Klient lub Pełny (w ramach NDP) lub w obu podkluczach.

Aby znaleźć wersje .NET Framework, przeglądając rejestr (.NET Framework 4.5 i nowsze)

  1. W menu Start wybierz Uruchom.
  2. W polu Otwórz wpisz regedit.exe. Musisz mieć poświadczenia administracyjne, aby uruchomić regedit.exe.
  3. W Edytorze rejestru otwórz następujący podklucz:

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

Należy zauważyć, że ścieżka do pełnego podklucza zawiera podklucz Net Framework, a nie .NET Framework

Sprawdź wartość DWORD o nazwie Release. Istnienie wersji DWORD wskazuje, że .NET Framework 4.5 lub nowszy został zainstalowany na tym komputerze.

wprowadź opis zdjęcia tutaj

Uwaga : ostatni wiersz powyższej migawki, który został obcięty, czyta On all other OS versions: 461310. Starałem się jak najlepiej, aby uniknąć wycinania informacji podczas robienia zrzutu ekranu, ale stół był zbyt duży.


6

Po otwarciu wiersza polecenia i wpisaniu następujących dwóch poleceń zostaną wyświetlone wszystkie wersje frameworku zainstalowane na bieżącym komputerze (każda z nich jest przechowywana w osobnym katalogu w tym katalogu).

cd %systemroot%\Microsoft.NET\Framework

dir /A:D

8
Nie jest to zalecane, ponieważ może to wprowadzać w błąd. Jeśli zaktualizowałeś 4.0 => 4.5.2, katalog może pokazywać tylko v4.0.30319. Zobacz przykład Sunimal Kaluarachchi.
Dinah

6

Po prostu wpisz następujące polecenie w wierszu polecenia:

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

Twoja wersja dotnet będzie wyświetlana jako najwyższy numer.


1
Wyświetla wszystkie wersje do 4.0, ale na przykład nie 4.5.
pinowthebird

4

Aby pobrać zainstalowane wersje z wiersza poleceń, zalecam użycie wersji netto .

  • To tylko jeden plik binarny .
  • Wykorzystuje wytyczne dostarczone przez mojego Microsoft aby uzyskać informacje o wersji.
  • Nie wymaga instalacji zestawu SDK.
  • Lub wiersz polecenia programu Visual Studio.
  • Nie wymaga samodzielnego używania regedit i wyszukiwania kluczy rejestru. W razie potrzeby możesz nawet potokować dane wyjściowe w narzędziu wiersza poleceń.

Kod źródłowy jest dostępny na github.com

Pełne ujawnienie: sam stworzyłem to narzędzie z frustracji.


Jeśli ten (niekompletny) zestaw informacji o wersji jest dla Ciebie wystarczająco dobry, masz więcej mocy.
Dan Esparza

@Shiva Wskazujesz, że uważasz, że to polecenie pokazuje wszystko, a ja z szacunkiem się z tobą nie zgadzam. Proszę spojrzeć na link z wytycznymi dostarczonymi przez Microsoft. Na przykład: Twoje zapytanie nie pokazuje, że mam zainstalowany program .NET 4.6.1. Wskazuje również, że mam zainstalowany program „CDF”, który nie jest wersją środowiska .NET.
Dan Esparza

4

Jeśli robisz to dość często (jak to zwykle robię), możesz utworzyć skrót na pulpicie w następujący sposób:

  1. Kliknij pulpit prawym przyciskiem myszy i wybierz NowySkrót .
  2. W polu lokalizacji wklej ten ciąg: 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" (pochodzi z postu Binoj Antony ).
  3. Kliknij Dalej . Nadaj skrótowi nazwę i zakończ .

(UWAGA: Nie jestem pewien, czy to działa w wersji 4.5, ale mogę potwierdzić, że działa w wersji 4.6 i wersjach wcześniejszych niż 4.5.)


Wersje 1.0 i 1.1 nie pojawiają się w kluczu NET Framework Setup , ale istnieją w folderze% systemroot% \ Microsoft.NET \ Framework \.
samis,

4

Oto skrypt Power Shell, którego użyłem, odwołując się do:

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

Powyższy skrypt korzysta z rejestru i podaje nam numer aktualizacji Windows wraz z .Net Framework zainstalowanym na komputerze.

Odniesienie: https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed#to-find-net-framework-versions-by- odpytywanie-rejestru-w-kodzie-net-framework-45-i później

Oto wyniki dla tego samego podczas uruchamiania tego skryptu na dwóch różnych komputerach

  1. Gdzie .NET 4.7.2 został już zainstalowany:

wprowadź opis zdjęcia tutaj

  1. Gdzie .NET 4.7.2 nie został zainstalowany:

wprowadź opis zdjęcia tutaj


3

Mój Boże, tyle bałaganu, aby znaleźć wersję zainstalowanej platformy .net?

Windows> Szukaj> Instalator Visual Studio> w celu zainstalowania wersji VS, dotknij Więcej> Modyfikuj> Pojedyncze komponenty i zobacz to tam:

wprowadź opis zdjęcia tutaj



1

clrverjest doskonały. Wystarczy uruchomić go w wierszu polecenia .NET, aby wyświetlić listę wszystkich dostępnych wersji środowiska.


3
To narzędzie wymaga zainstalowania nie tylko architektury .NET, ale także Visual Studio. PO wskazał, że program Visual Studio może nie zostać zainstalowany.
Dan Esparza

I nie wyświetla wszystkich (a nawet większości) wersji. Dla mojego Win7 PC pokazuje tylko V2.0 i 4.0, ale niektóre z powyższych metod również pokazują wersje: 3.0, 3.5, 4.5, 4.5.1, 4.5.2, 4.6.1 i 4.7.
Zeek2,

1
@Zeek clrverpokazuje zainstalowane środowiska uruchomieniowe .net , które mogą być współużytkowane przez wersje .net . Zobacz : Określanie, które wersje .NET Framework są zainstalowane i identyfikowanie wersji .NET, z której korzystasz (2.0, 4.5, 4.5.1 lub 4.5.2)
sam

1

Dla każdego z systemem Windows 10 1607 i szukającym .net 4.7 . Zignoruj ​​wszystkie powyższe.

Nie ma go w rejestrze , folderze C: \ Windows \ Microsoft.NET ani w zainstalowanych programach liście lub na ekranie WMIC tej samej listy.

Poszukaj „zainstalowanych aktualizacji” KB3186568.


1
Jest w rejestrze, jak udokumentował Microsoft . HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full- Releasewartość będzie wynosić 4607984,7 dla W10 1607.
Richard Deeming

Nie jest. Klawisz „Pełny” nawet nie istnieje.
skrie

1
Jest i tak jest. Używam 1607 i teraz patrzę na Fullklucz!
Richard Deeming


0

Jeśli tworzysz jakąś aplikację .Net (np. Aplikację internetową), możesz utworzyć 1 linię kodu błędu (np. Wywołać niewłaściwą nazwę funkcji) i ponownie załadować stronę, wersja .Net zostanie wyświetlonawprowadź opis zdjęcia tutaj


Prawdopodobnie nie jest to najczystszy sposób, ale rzeczywiście opcja, o której całkowicie zapomniałem. Prosty GACUTIL /l ?w twoim (deweloperskim) PowerShell daje tak samo.
B - rian

-1

Jest łatwiejszy sposób na uzyskanie dokładnej wersji .NET wersji zainstalowanej na twoim komputerze z polecenia cmd. Postępuj zgodnie z poniższymi instrukcjami;

Otwórz wiersz polecenia (tj. Windows + R → wpisz „cmd”) i wpisz następujące polecenie, wszystkie w jednym wierszu:% windir% \ Microsoft.NET \ FrameWork, a następnie przejdź do katalogu z najnowszym numerem wersji.

Zobacz http://dotnettec.com/check-dot-net-framework-version/


Otrzymuję ten błąd, próbując podążać za twoją odpowiedzią:'C:\Windows\Microsoft.NET\FrameWork' is not recognized as an internal or external command, operable program or batch file.
pavjel 17.04.19
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.