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 Nowy → Skró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.