.NET 버전은 어떻게 찾습니까?


258

어떤 버전의 .NET이 설치되어 있는지 어떻게 알 수 있습니까?

명령 프롬프트에 입력 할 수 있고 현재 설치된 버전을 알려주는 "java -version"과 같은 간단한 것을 찾고 있습니다.

Visual Studio가 설치되지 않았을 수도 있습니다. 일반적으로 클라이언트 컴퓨터에 대해 알고 싶습니다.


2
다음 명령을 실행하여 실행하십시오. wmic / namespace : \\ root \ cimv2 path win32_product 여기서 "%%. NET %% '와 같은 이름은 버전을 얻습니다.
HENG Vongkol


답변:


250

아래 명령 중 하나 를 입력 하여 첫 번째 줄에서 최신 버전을 제공하십시오.

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

Visual Studio가 설치되어 있거나 .NET Framework SDK가 있으면 SDK 명령 프롬프트 만 Visual Studio 명령 프롬프트에서 실행할 수 있습니다.

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

마지막 명령 (5)은 가장 먼저 설치된 .NET의 모든 버전 (4.5 제외 )을 나열합니다 . .NET 4.5가 설치되어 있는지 확인하려면 4 번째 명령을 실행해야합니다.

PowerShell 명령 프롬프트의 다른 세 가지 옵션이 아래에 제공됩니다.

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

마지막 명령 (8)은 .NET 4.5를 포함한 모든 버전을 제공합니다.


6
'CSC'는 Visual Studio 명령 프롬프트 (기본적으로)에서만 작동합니다. 또한 해당 버전의 컴파일러가 대상으로하는 .NET 프레임 워크의 최대 버전 만 제공합니다. -VS2005 및 VS2008을 설치 한 경우 다른 버전의 CSC가 다른 버전을보고합니다.
Matt Lacey

15
csc.NET Framework 버전이 아닌 C # 컴파일러 버전을 출력합니다.
Timwi

4
마지막 명령은 설치되어 있다고 생각하더라도 버전 4.5를 반환하지 않았습니다. stackoverflow.com/questions/3487265/… 의 답변에 포함되어 있습니다.
lmsurprenant

2
마지막 명령이 최신 버전을 표시하지 않습니다. appwiz.cpl에서 버전을 조회하거나 'wmic product'명령도 유용합니다. windows-commandline.com/find-net-version-on-your-computer
Giri

11
숫자 8을위한 건배!
Lionet Chen 2016

330

cmd 프롬프트에서 컴퓨터에 정확한 버전의 .NET 버전을 설치하는 더 쉬운 방법이 있습니다. 다음 지침을 따르십시오.

  1. 명령 프롬프트를 엽니 다 (예 : Windows + R → "cmd"입력).
  2. 한 줄에 다음 명령을 입력하십시오.

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

(이것은 모든 .NET 버전을 나열합니다.)

  1. 최신 .NET 4 버전을 확인하려면
  2. 한 줄에 다음 명령을 입력하십시오.

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

아래에 첨부 된 이미지가 표시되어 있는지 확인하십시오.

여기에 이미지 설명을 입력하십시오


4
단 하나의 간단한 명령으로 마이너 버전을 가져 오기 때문에 이것이 가장 쉽고 정확한 것으로 나타났습니다 (끝에 "* \ v4 \ Full"이 있음).
Ignas Vyšnia

1
좋은. 사용자 PC에서 작동하는 것을 원했습니다. 감사!
Kelly


6
멋지지만 Windows 7 컴퓨터에 설치된 4.5, 4.6 및 4.7 프레임 워크를 표시하지 않습니다. (
Zeek2

정확하지 않습니다. 제어판> 프로그램 및 기능에서 .NET 흔적이 없습니다. 그러나 명령을 실행하면 HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP \ v4.0 출력이 표시됩니다. 아마, .NET은 한때 내 컴퓨터에 설치되었고, unistalled되었지만 레지스트리가 정리되지 않았습니다.
Newton fan 01


30

명령 프롬프트로 이동하기 전에 다음 단계를 따르십시오.

내 컴퓨터를 열고 → " C : "드라이브를 두 번 클릭하고 " Windows "를 두 번 클릭하고 " Microsoft.NET "을 두 번 클릭하고 " 프레임 워크 "를 두 번 클릭하십시오. →이 폴더 안에 "v1.0.3705"와 같은 폴더가 있습니다. 및 / 또는 "v2.0.50727"및 / 또는 "v3.5"및 / 또는 "v4.0.30319".

최신 .NET 버전은 가장 높은 v 번호 폴더에 있으므로 v4.0.30319가 사용 가능한 경우 최신 .NET 프레임 워크를 보유합니다. 그러나 v4.0.30319는 .NET Framework 버전 4.0이 있다는 의미는 아닙니다. v4.0.30319는 Visual C # 컴파일러 버전이므로 .NET 프레임 워크 버전을 찾으려면 다음을 수행하십시오.

명령 프롬프트로 이동하여 다음 경로를 따르십시오.

C : \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 (또는 가장 높은 v 번호 폴더)

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

산출:

Microsoft .NET Framework 4.5 용 Microsoft (R) Visual C # 컴파일러 버전 4.0.30319.17929 저작권 (C) Microsoft Corporation. 판권 소유.

아래 예 :

여기에 이미지 설명을 입력하십시오


2
꽤 좋았지 만 출력은 서버에서 최소한 다릅니다. "for"메시지는 포함되지 않았습니다 : lh4.googleusercontent.com/-p7Fu5GDj0cg/UywSqPTdQjI/AAAAAAAAALQ/…
Nenotlep

2
디렉토리 유형 을 변경하려면cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 다음을 입력하십시오 csc.exe.
shaijut

1
제한된 사용자 계정으로 로그인하면 대부분 효율적입니다.
Rzassar

10

이 답변은 .NET Core에만 적용됩니다!

타자 dotnet --version선택한 터미널에 하면 사용중인 .NET Core SDK 버전이 인쇄됩니다.

여기 에서 dotnet명령 에 대해 자세히 알아보십시오 .


15
.NET Core에만 적용됩니다.
Sunil

9

설치된 프레임 워크 버전의 경우 설치 한 서비스 팩 및 핫픽스에 따라 다릅니다. 자세한 내용 은 이 MSDN 페이지 를 참조하십시오. %systemroot%\Microsoft.NET\Framework버전을 구하는 것이 좋습니다 .

Environment.Version 은 프로그래밍 방식으로 CLR 버전을 제공합니다.

이 버전은 CLR 버전이며, 설치 한 최신 버전의 프레임 워크와 반드시 같을 필요는 없습니다 (.NET 3.0과 3.5 모두 CLR v2를 사용함).


Environment.Version은 응용 프로그램 버전을 제공하는 것 같습니다. LinqPad에서 실행중인 .NET 버전을 찾고 싶습니다. .NET 버전이 아니라 LinqPad 버전
Naomi

@Naomi : 아니요. CLR 버전을 제공합니다. 문서에서 : "공용 언어 런타임의 주, 부, 빌드 및 개정 번호를 설명하는 Version 개체를 가져옵니다." .
adrianbanks

이 개체에서 볼 수있는 것은 무엇입니까? 2.0.50727.5472를보고 있습니다. 2 Minor 0 Build 50727 Revision 5472 MajorRevision 0 MinorRevision 5472는 CLR 버전 런타임처럼 보이지 않습니다.
Naomi

LinqPad의 최신 버전을로드했으며 버전에 대해 4.0.30319.18052가 표시됩니다. 이전 버전은 .NET 3.5 버전을 대상으로했습니다. 그래서, 나는 여전히 약간 혼란 스럽습니다. 실제로 CLR 버전을 보여 줍니까?
나오미

1
@Naomi : 예, CLR 버전을 보여줍니다. 2.0.50727.5472는 .Net 2.0 CLR 버전이며 .Net 3.0 및 3.5에도 사용됩니다. 4.0.30319.18052는 .Net 4.0이며 버전 번호가 다릅니다.
adrianbanks

8

MSDN은 자세한 여기 레지스트리에서 그것을 확인하는 방법에 대한 아주 멋지게 :

레지스트리를보고 .NET Framework 버전을 찾으려면 (.NET Framework 1-4)

  1. 시작 메뉴에서 실행을 선택하십시오.
  2. 열기 상자에 regedit.exe를 입력하십시오. regedit.exe를 실행하려면 관리 자격 증명이 있어야합니다.
  3. 레지스트리 편집기에서 다음 하위 키를 엽니 다.

    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework 설치 \ NDP

설치된 버전이 NDP 하위 키 아래에 나열됩니다. 버전 번호는 버전 항목에 저장됩니다. .NET Framework 4의 경우 버전 항목은 클라이언트 또는 전체 하위 키 (NDP 아래) 또는 두 하위 키 아래에 있습니다.

레지스트리를보고 .NET Framework 버전을 찾으려면 (.NET Framework 4.5 이상)

  1. 시작 메뉴에서 실행을 선택하십시오.
  2. 열기 상자에 regedit.exe를 입력하십시오. regedit.exe를 실행하려면 관리 자격 증명이 있어야합니다.
  3. 레지스트리 편집기에서 다음 하위 키를 엽니 다.

    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework 설치 \ NDP \ v4 \ Full

전체 하위 키의 경로에는 .NET Framework가 아닌 하위 키 Net Framework가 포함됩니다.

이름이 DWORD 값인지 확인하십시오 Release. Release DWORD가 있으면 해당 컴퓨터에 .NET Framework 4.5 이상이 설치되었음을 나타냅니다.

여기에 이미지 설명을 입력하십시오

참고 : 클리핑 된 위 스냅 샷의 마지막 행을 읽습니다 On all other OS versions: 461310. 스크린 샷을 찍는 동안 정보가 잘리지 않도록 최선을 다했지만 테이블이 너무 컸습니다.


6

명령 프롬프트를 열고 다음 두 명령을 입력하면 현재 시스템에 설치된 모든 프레임 워크 버전이 나열됩니다 (각 버전은이 디렉토리의 별도 디렉토리에 저장 됨).

cd %systemroot%\Microsoft.NET\Framework

dir /A:D

8
오해의 소지가 있으므로 권장하지 않습니다. 4.0 => 4.5.2를 업그레이드 한 경우 디렉토리에는 v4.0.30319 만 표시 될 수 있습니다. Sunimal Kaluarachchi의 예를 참조하십시오.
Dinah

6

명령 행에 다음을 입력하십시오.

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

닷넷 버전이 가장 높은 숫자로 표시됩니다.


1
4.0까지는 모든 버전을 표시하지만 4.5는 아닙니다.
pinowthebird

4

커맨드 라인에서 설치된 버전을 얻으려면 net-version을 사용하는 것이 좋습니다 .

  • 단지 하나의 이진일 뿐입니다 입니다.
  • Microsoft에 제공된 지침을 사용합니다. 에 버전 정보를 얻습니다.
  • SDK를 설치할 필요가 없습니다.
  • 또는 Visual Studio 명령 프롬프트입니다.
  • regedit을 사용하거나 레지스트리 키를 직접 찾아야 할 필요는 없습니다. 필요한 경우 명령 줄 도구로 출력을 파이프 할 수도 있습니다.

소스 코드는 github.com에서 볼 수 있습니다

전체 공개 : 나는이 도구를 좌절로부터 직접 만들었습니다.


그 (불완전한) 버전 정보가 당신에게 충분하다면, 당신에게 더 많은 힘을 줄 것입니다.
Dan Esparza

@ 시바 당신은 그 명령이 모든 것을 보여 준다고 생각한다는 것을 나타냅니다. Microsoft에서 제공 한 지침이있는 링크를 참조하십시오. 예를 들어 : 쿼리에 .NET 4.6.1이 설치되어 있음이 표시되지 않습니다. 또한 .NET 프레임 워크 버전이 아닌 'CDF'가 설치되어 있음을 나타냅니다.
Dan Esparza

4

이 작업을 자주 수행하는 경우 (내가하는 것처럼) 다음과 같이 바탕 화면에 바로 가기를 만들 수 있습니다.

  1. 바탕 화면을 마우스 오른쪽 버튼으로 클릭하고 새로 만들기바로 가기를 선택하십시오. .
  2. 위치 입력란에 다음 문자열을 붙여 넣습니다 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"( Binoj Antony의 게시물 에서 가져온 것임). ).
  3. 다음을 누르 십시오 . 바로 가기에 이름을 지정하고 Finish를 클릭하십시오 .

(참고 : 4.5에서 작동하는지 확실하지 않지만 4.6 및 4.5 이전 버전에서 작동하는지 확인할 수 있습니다.)


버전 1.01.1NET Framework 설치 키 에 표시되지 않지만 % systemroot % \ Microsoft.NET \ Framework \ 폴더에 있습니다.
samis

4

다음은 참조를 통해 사용한 Power Shell 스크립트입니다.

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

위의 스크립트는 레지스트리를 사용하며 컴퓨터에 설치된 .Net Framework와 함께 Windows 업데이트 번호를 제공합니다.

참조 : https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed#to-find-net-framework-versions-by- 코드-넷-프레임 워크 -45- 나중에 레지스트리 쿼리

다음은 두 대의 다른 컴퓨터에서 해당 스크립트를 실행할 때 동일한 결과입니다.

  1. .NET 4.7.2가 이미 설치된 위치 :

여기에 이미지 설명을 입력하십시오

  1. .NET 4.7.2가 설치되지 않은 경우 :

여기에 이미지 설명을 입력하십시오


3

맙소사, 설치된 .net 프레임 워크의 버전을 찾는 것이 너무 엉망입니까?

Windows> 검색> Visual Studio 설치 프로그램> 설치된 VS 버전의 경우 추가> 수정> 개별 구성 요소를 누르고 여기에서 확인하십시오.

여기에 이미지 설명을 입력하십시오



1

clrver훌륭한 것입니다. .NET 프롬프트에서 실행하면 사용 가능한 모든 프레임 워크 버전이 나열됩니다.


3
이 도구는 .NET 프레임 워크뿐만 아니라 Visual Studio도 설치해야합니다. OP는 Visual Studio가 설치되지 않았 음을 나타냅니다.
Dan Esparza

그리고 모든 (또는 대부분의) 버전을 보여주지는 않습니다. 내 Win7 PC의 경우 V2.0 및 4.0 만 표시되지만 위의 다른 방법 중 일부는 3.0, 3.5, 4.5, 4.5.1, 4.5.2, 4.6.1 및 4.7 버전도 보여줍니다.
Zeek2

1
@Zeek clrver는 설치된 .net 런타임을 보여줍니다 . .net 버전 간에 공유 할 수 있습니다 . 참조 어떤 .NET Framework 버전이 설치된 경우 확인 방법 :실행중인 .NET 버전 (2.0, 4.5, 4.5.1 또는 4.5.2) 확인
samis

1

Windows 10 1607을 실행 하고 .net 4.7을 찾는 모든 사람 . 위의 내용을 모두 무시하십시오.

그것은에없는 레지스트리 , C : \ WINDOWS \ Microsoft.NET 폴더 또는 설치된 프로그램 목록 또는 같은 목록의 WMIC 표시됩니다.

"설치된 업데이트"KB3186568을 찾으십시오.


1
Microsoft가 문서화 한대로 레지스트리에 있습니다. HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full- Release가치는 4607981607
Richard Deeming

그렇지 않습니다. "Full"키는 존재하지 않습니다.
skrie

1
그렇습니다. 1607을 실행 중이며 Full지금 키를 보고 있습니다!
Richard Deeming 18


0

일부 .Net 앱 (예 : 웹 앱)을 개발하는 경우 한 줄의 오류 코드 (예 : 잘못된 함수 이름 호출)를 만들고 페이지를 다시로드하면 .Net 버전이 표시됩니다여기에 이미지 설명을 입력하십시오


아마도 가장 깨끗한 방법은 아니지만 실제로 완전히 잊어 버린 옵션입니다. GACUTIL /l ?(개발자) powershell 의 단순함 은 동일합니다.
B--rian

-1

cmd 프롬프트에서 컴퓨터에 정확한 버전의 .NET 버전을 설치하는 더 쉬운 방법이 있습니다. 다음 지침을 따르십시오.

명령 프롬프트를 열고 (예 : Windows + R →“cmd”입력) 다음 명령을 모두 한 줄에 입력하십시오 : % windir % \ Microsoft.NET \ FrameWork, 최신 버전 번호의 디렉토리로 이동.

http://dotnettec.com/check-dot-net-framework-version/참조하십시오


귀하의 답변을 따르려고 할 때이 오류가 발생합니다.'C:\Windows\Microsoft.NET\FrameWork' is not recognized as an internal or external command, operable program or batch file.
pavjel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.