RCLogoVisual Studio 2019 버전 16.7 릴리스 정보


개발자 커뮤니티 | 시스템 요구 사항 | 호환성 | 배포 가능 코드 | 릴리스 기록 | 사용 조건 | 블로그 Visual Studio Docs | 의 새로운 기능


참고 항목

이것은 최신 버전의 Visual Studio가 아닙니다. 최신 릴리스를 다운로드하려면 Visual Studio 사이트를 방문하세요.



지원 기간

이제 Visual Studio 2019 버전 16.7은 지원되지 않습니다.

Visual Studio 2019 버전 16.7의 엔터프라이즈 및 전문 사용자를 대상으로 지원되었으며, 2022년 4월까지 보안 취약성에 대한 수정 사항이 수신되었습니다. 이 기간은 2021년 3월에 Visual Studio 2019 버전 16.9가 Visual Studio 2019 제품의 차기 서비스 기준으로 지정되었다는 사실에 따라 결정되었습니다. Visual Studio에서 지원 기준에 대한 자세한 내용은 Visual Studio 2019 지원 정책을 참조하세요. 

최신 버전의 릴리스 정보를 참조하거나 Visual Studio 사이트를 방문하여 지원되는 최신 버전의 Visual Studio 2019를 다운로드합니다.

Visual Studio 2019 버전 16.7 릴리스

Visual Studio 2019 보관된 릴리스 정보

Visual Studio 블로그

Visual Studio 블로그는 엔지니어링 팀의 제품 인사이트가 제공되는 공식 출처입니다. 다음 게시물에서 Visual Studio 릴리스에 대한 자세한 정보를 찾을 수 있습니다.


Release Notes Icon Visual Studio 2019 버전 16.7.28

릴리스 날짜: 2022년 4월 19일

Visual Studio 2019 버전 16.7.28 릴리스

  • 16.7.27에서 vctip.exe 회귀 수정

Release Notes Icon Visual Studio 2019 버전 16.7.27

릴리스 날짜: 2022년 4월 12일

Visual Studio 2019 버전 16.7.27 릴리스

보안 권고 알림

CVE-2022-24765 권한 상승 취약성 Windows용 Git에 Git 디렉터리를 검색할 때 Git 작업이 리포지토리 외부에서 실행될 수 있는 권한 상승 취약성이 존재합니다. Windows용 Git이 버전 2.35.2.1로 업데이트되었습니다.

CVE-2022-24767 DLL 하이재킹 취약성 SYSTEM 사용자 계정으로 Windows용 Git 설치 제거 프로그램을 실행할 때 DLL 하이재킹 취약성이 존재합니다. Windows용 Git이 버전 2.35.2.1로 업데이트되었습니다.

CVE-2022-24513 권한 상승 취약성 Microsoft Visual Studio 업데이트 서비스가 로컬 구성 데이터를 잘못 구문 분석하는 경우 권한 상승 취약성이 존재합니다.


Release Notes Icon Visual Studio 2019 버전 16.7.26

릴리스 날짜: 2022년 3월 8일

Visual Studio 2019 버전 16.7.26 릴리스

보안 권고 알림

CVE-2020-8927 취약성 .NET 5.0 및 .NET Core 3.1에는 1.0.8 이전의 Brotli 라이브러리 버전에서 버퍼 오버플로가 발생하는 원격 코드 실행 취약성이 있습니다.

CVE-2022-24464 취약성 .NET 6.0, .NET 5.0, .NET CORE 3.1에는 특정 형식의 http 폼 요청을 구문 분석할 때 발생하는 서비스 거부 취약성이 있습니다.

CVE-2022-24512 취약성 .NET 6.0, .NET 5.0, .NET Core 3.1에는 .NET 이중 구문 분석 루틴에서 스택 버퍼 오버런이 발생하는 원격 코드 실행 취약성이 있습니다.

CVE-2021-3711 OpenSSL 버퍼 오버플로 취약성 OpenSSL에는 Git for Windows에서 사용되는 잠재적인 버퍼 오버플로 취약성이 있습니다. 이제 Git for Windows가 이 문제를 해결하는 버전 2.35.1.2로 업데이트되었습니다.


Release Notes Icon Visual Studio 2019 버전 16.7.25

릴리스 날짜: 2022년 2월 8일

이 릴리스의 Visual Studio 2019 버전 16.7.25에서는

보안 권고 알림

CVE-2022-21871 진단 허브 표준 수집기 서비스 런타임 권한 상승 취약성 권한 상승 취약성은 진단 허브 표준 수집기가 데이터 작업을 잘못 처리하는 경우에 존재합니다.


Release Notes Icon Visual Studio 2019 버전 16.7.24

릴리스 날짜: 2022년 1월 11일

이 릴리스의 Visual Studio 2019 버전 16.7.24에서는

  • Windows 터미널을 기본 터미널로 사용할 때 애플리케이션을 여러 번 디버그할 수 없는 문제가 해결되었습니다.
  • 제한된 구성에서 고객 차단을 해제하기 위한 설치 프로그램 수정
  • 클라이언트에서 더 최신 부트스트래퍼를 업데이트할 수 없는 문제가 해결되었습니다. 클라이언트가 2022년 1월 이후 제공된 부트스트래퍼 및 설치 프로그램을 사용하면 이후의 부트스트래퍼를 사용하는 모든 업데이트는 제품 수명 주기 동안 유효합니다.

Developer Community


Release Notes Icon Visual Studio 2019 버전 16.7.23

‘릴리스 날짜: 2021년 12월 14일’

이 릴리스의 Visual Studio 2019 버전 16.7.23에서는

  • Python 워크로드에 Python 3.9.7이 추가되었습니다. 보안 취약성으로 인해 Python 3.7.8이 제거되었습니다.

보안 권고 알림

CVE-2021-43877 취약성 ANCM에는 권한 상승 취약성이 있습니다. 이로 인해 .Net Core, .NET 5, .NET 6 애플리케이션이 IIS 내에서 호스트될 때 권한이 상승할 수 있습니다.


Release Notes Icon Visual Studio 2019 버전 16.7.22

릴리스 날짜: 2021년 11월 16일

이 릴리스의 Visual Studio 2019 버전 16.7.22

  • 이제 부트스트래퍼는 --useLatestInstaller 매개 변수를 사용합니다. 그러면 최신 설치 관리자가 레이아웃에 통합됩니다. Visual Studio 2022에 제공되는 이 최신 설치 관리자를 사용하면 엔터프라이즈에서 한 레이아웃 위치에서 다른 위치로 클라이언트를 전환하려는 시나리오가 지원됩니다. 자세한 내용은 [Visual Studio 관리자 가이드]를 참조하세요. (* 이제 부트스트래퍼에서 --useLatestInstaller 매개 변수를 사용하므로 최신 설치 관리자가 레이아웃에 통합됩니다. Visual Studio 2022와 함께 제공되는 이 최신 설치 관리자를 사용하면 엔터프라이즈가 한 레이아웃 위치에서 다른 위치로 클라이언트를 전환하려는 시나리오가 지원됩니다. 자세한 내용은 Visual Studio 관리자 가이드를 참조하세요.)

Release Notes Icon Visual Studio 2019 버전 16.7.21

릴리스 날짜: 2021년 11월 9일

이 릴리스의 Visual Studio 2019 버전 16.7.21

  • 시작 메뉴 바로 가기 링크를 사라지게 한 버그를 수정했습니다. 버그는 동일한 머신에서 서로 다른 제품 SKU의 여러 인스턴스를 업데이트할 때만 발생했습니다.

보안 권고 알림

CVE-2021-42319 권한 상승 취약성 권한 상승 취약성은 Visual Studio 설치 관리자에 포함된 WMI 공급자에 있습니다.

CVE-2021-42277 진단 허브 표준 수집기 서비스 권한 상승 취약성 권한 상승 취약성은 진단 허브 표준 수집기가 파일 작업을 부적절하게 처리할 때 존재합니다.


Release Notes Icon Visual Studio 2019 버전 16.7.20

릴리스 날짜: 2021년 10월 12일

이 릴리스의 Visual Studio 2019 버전 16.7.20

보안 권고 알림

CVE-2021-41355 .NET 5.0의 공개 취약성 .NET에는 정보 공개 취약성이 있습니다. 여기서 System.DirectoryServices.Protocols.LdapConnection은 자격 증명을 Linux에서 일반 텍스트로 보냅니다.

CVE-2020-1971 OpenSSL 서비스 거부 취약성 Git에서 사용하는 OpenSSL 라이브러리에는 잠재적인 서비스 거부 취약성이 있습니다.

CVE-2021-3449 OpenSSL 서비스 거부 취약성 Git에서 사용하는 OpenSSL 라이브러리에는 잠재적인 서비스 거부 취약성이 있습니다.

CVE-2021-3450 OpenSSL 서비스 거부 취약성 Git에서 사용하는 OpenSSL 라이브러리에는 잠재적인 플래그 바이패스가 존재합니다.


Release Notes Icon Visual Studio 2019 버전 16.7.19

‘릴리스 날짜: 2021년 9월 14일’

이 릴리스의 Visual Studio 2019 버전 16.7.19에서는

보안 권고 알림

CVE-2021-26434 Visual Studio 잘못된 권한 할당 권한 상승 취약성 C++를 사용한 게임 개발을 설치하고 Unreal Engine 설치 관리자 워크로드를 선택한 후 Visual Studio에 권한 할당 취약성이 있습니다. 설치하는 동안 시스템은 LPE에 취약하며 모든 사용자에게 쓰기 권한이 있는 디렉터리를 만듭니다.

CVE-2021-36952 Visual Studio 원격 코드 실행 취약성 Visual Studio가 메모리의 개체를 부적절하게 처리하는 경우 Visual Studio에 원격 코드 실행 취약성이 있습니다. 취약성을 이용할 줄 아는 공격자는 현재 사용자의 컨텍스트에서 임의 코드를 실행할 수 있습니다.


Release Notes Icon Visual Studio 2019 버전 16.7.18

‘릴리스 날짜: 2021년 8월 10일’

이 릴리스의 Visual Studio 2019 버전 16.7.18에서는

  • 업데이트 명령의 명령줄 실행에 영향을 주는 문제가 해결되었습니다. 처음 업데이트에 실패한 경우 이후에 업데이트 명령을 실행하면 이제 업데이트가 중단된 지점에서 이전 작업이 다시 시작됩니다.

보안 권고 알림

CVE-2021-26423 .NET Core 서비스 거부 취약성 WebSocket 엔드포인트를 제공하는 .NET (Core) 서버 애플리케이션이 단일 WebSocket 프레임을 읽으려고 시도하는 동안 끊임없이 반복되는 서비스 거부 취약성이 발생합니다.

CVE-2021-34485 .NET Core 정보 공개 취약성 Linux와 macOS에서 전역 읽기 권한을 사용하여 주문형 덤프가 생성되고 크래시 덤프를 수집하기 위해 도구에서 덤프가 생성될 때 정보 공개 취약성이 발생합니다.

CVE-2021-34532 ASP.NET Core 정보 공개 취약성 구문 분석할 수 없는 경우 JWT 토큰이 기록 되는 위치에 정보 공개 취약성이 있습니다.


Release Notes Icon Visual Studio 2019 버전 16.7.17

릴리스 날짜: 2021년 7월 13일

이 릴리스의 Visual Studio 2019 버전 16.7.17에서

  • .NET 3.1.411 SDK는 Visual Studio 2019에 삽입되었습니다.

Release Notes Icon Visual Studio 2019 버전 16.7.16

‘릴리스 날짜: 2021년 6월 8일’

Visual Studio 2019 버전 16.7.16 릴리스

보안 권고 알림

CVE-2021-31957 ASP.NET 서비스 거부 취약성 ASP.NET Core가 클라이언트 연결 해제를 잘못 처리할 때 서비스 거부 취약성이 발생합니다.


Release Notes Icon Visual Studio 2019 버전 16.7.15

릴리스 날짜: 2021년 5월 11일

Visual Studio 2019 버전 16.7.15 릴리스

  • 관리자가 업데이트를 배포하기 위해 Visual Studio의 새 레이아웃을 만들 때 업데이트가 실패하는 문제를 해결했습니다. 레이아웃 위치를 이동한 후 클라이언트 컴퓨터가 업데이트되지 않습니다.

보안 권고 알림

CVE-2021-27068 중첩된 폴더에서 python.exe를 플랜팅할 때 RCE가 가능함 python 코드로 작업 영역을 열 때 원격 코드 실행 취약성이 존재하며 해당 작업 영역의 스크립트 하위 폴더에 python.exe이 포함되어 있습니다.

CVE-2021-31204 .NET Core 권한 상승 취약성 사용자가 Linux 또는 macOS 기반 운영 체제에서 단일 파일 애플리케이션을 실행하는 경우 .NET 5.0 및 .NET Core 3.1에는 권한 상승 취약성이 존재합니다.


Release Notes Icon Visual Studio 2019 버전 16.7.14

‘릴리스 날짜: 2021년 4월 13일’

Visual Studio 2019 버전 16.7.14 릴리스

  • 최적화 프로그램이 활성 코드를 잘못 제거함
  • NuGet은 일반적인 출력의 세부 정보 표시에서 패키지를 복원할 때 패키지 소스 및 패키지 콘텐츠 해시를 보고합니다.
  • NuGet은 전역 패키지 폴더의 패키지 .nupkg.metadata 파일에 패키지 소스를 저장합니다. 전역 패키지 폴더의 기존 패키지는 이 추가 정보를 가져오지 않습니다. 모든 패키지에 대한 패키지 소스 정보를 수집하기 위해 전역 패키지 폴더를 지울 수 있습니다.

보안 권고 알림

CVE-2021-27064 Visual Studio 설치 관리자 권한 상승 취약성 Visual Studio 설치 관리자가 상승된 권한으로 피드백 클라이언트를 실행할 때 원격 코드 실행 취약성이 존재합니다.

CVE-2021-28313 / CVE-2021-28321/ CVE-2021-28322 진단 허브 표준 수집기 서비스 권한 상승 취약성 진단 허브 표준 수집기가 데이터 작업을 잘못 처리하는 경우 권한 상승 취약성이 존재합니다.


Release Notes Icon Visual Studio 2019 버전 16.7.13

‘릴리스 날짜: 2021년 3월 9일’

Visual Studio 2019 버전 16.7.13 릴리스

보안 권고 알림

CVE-2021-21300 Visual Studio용 Git 원격 코드 실행 취약성 원격 코드 실행 취약성은 Visual Studio에서 악성 리포지토리를 복제하는 경우에 존재합니다.

CVE-2021-26701 .NET Core 원격 코드 실행 취약성 텍스트 인코딩이 수행되는 방식으로 인해 .NET 5 및 .NET Core에 원격 코드 실행 취약성이 존재합니다.


Release Notes Icon Visual Studio 2019 버전 16.7.12

‘릴리스 날짜: 2021년 2월 9일’

Visual Studio 2019 버전 16.7.12 릴리스


Release Notes Icon Visual Studio 2019 버전 16.7.11

‘릴리스 날짜: 2021년 2월 9일’

Visual Studio 2019 버전 16.7.11 릴리스

Visual Studio 2019 버전 16.7.6 최적화 컴파일러의 버그

보안 권고 알림

CVE-2021-1639 TypeScript 언어 서비스 원격 코드 실행 취약성 Visual Studio가 JavaScript 또는 TypeScript 코드 파일을 포함하는 악성 리포지토리를 로드하는 경우에 원격 코드 실행 취약성이 존재합니다.

CVE-2021-1721 .NET Core 서비스 거부 취약성 X509 인증서 체인을 작성하는 동안 HTTPS 웹 요청을 만드는 경우에 서비스 거부 취약성이 존재합니다.

CVE-2021-24112 .NET 5 및 .NET Core 원격 코드 실행 취약성 그래픽 인터페이스에 참조가 남아 있을 때 메타파일을 삭제하는 경우 원격 코드 실행 취약성이 존재합니다. 이 취약성은 macOS 또는 Linux에서 실행되는 시스템에만 존재합니다.


Release Notes Icon Visual Studio 2019 버전 16.7.10

‘릴리스 날짜: 2021년 1월 12일’

Visual Studio 2019 버전 16.7.10 릴리스에서

보안 권고 알림

CVE-2021-1651 / CVE-2021-1680 진단 허브 표준 수집기 서비스 권한 상승 취약성 권한 상승 취약성은 진단 허브 표준 수집기가 데이터 작업을 잘못 처리하는 경우에 존재합니다.

CVE-2020-26870 Visual Studio 설치 관리자 원격 코드 실행 취약성 원격 코드 실행 취약성은 Visual Studio 설치 관리자가 악성 markdown을 표시하려고 시도하는 경우에 존재합니다.

CVE-2021-1723 .NET Core 및 Visual Studio 서비스 거부 취약성 서비스 거부 취약성은 Kestrel의 구현에 존재합니다.


Release Notes Icon Visual Studio 2019 버전 16.7.9

릴리스 날짜: 2020년 12월 8일

이 Visual Studio 2019 버전 16.7.9 릴리스에서

보안 권고 알림

CVE-2020-17156 Visual Studio 원격 코드 실행 취약성 원격 코드 실행 취약성은 Visual Studio에서 악성 리포지토리를 복제하는 경우에 존재합니다.


Release Notes Icon Visual Studio 2019 버전 16.7.8

‘릴리스 날짜: 2020년 11월 10일’

이 Visual Studio 2019 버전 16.7.8 릴리스에서

보안 권고 알림

CVE-2020-17100 Visual Studio 변조 취약성 Visual Studio용 Python 도구가 python27 폴더를 만들 때 변조 취약성이 존재합니다. 이 취약성을 성공적으로 악용한 공격자가 상승된 컨텍스트에서 프로세스를 실행할 수 있습니다.



Release Notes Icon Visual Studio 2019 버전 16.7.7

‘릴리스 날짜: 2020년 10월 27일’

이 Visual Studio 2019 버전 16.7.7 릴리스에서


Release Notes IconVisual Studio 2019 버전 16.7.6

릴리스 날짜: 2020년 10월 13일

이 Visual Studio 2019 버전 16.7.6 릴리스에서


Release Notes IconVisual Studio 2019 버전 16.7.5

릴리스 날짜: 2020년 9월 29일

Visual Studio 2019 버전 16.7.5 릴리스


Release Notes Icon Visual Studio 2019 버전 16.7.4

‘릴리스 날짜: 2020년 9월 21일’

Visual Studio 2019 버전 16.7.4 릴리스

  • Xcode 12.0 GM 지원을 추가합니다.
  • Info.plist 편집기에서 색 집합을 테마 컬러로 설정하는 기능 지원을 추가합니다.

Release Notes Icon Visual Studio 2019 버전 16.7.3

‘릴리스 날짜: 2020년 9월 8일’

Visual Studio 2019 버전 16.7.3 릴리스

보안 권고 알림

CVE-2020-1130 진단 허브 표준 수집기 권한 상승 취약성 진단 허브 표준 수집기가 데이터 작업을 잘못 처리하는 경우 권한 상승 취약성이 존재합니다. 이 취약성을 성공적으로 악용한 공격자가 상승된 컨텍스트에서 프로세스를 실행할 수 있습니다.

CVE-2020-1133 진단 허브 표준 수집기 권한 상승 취약성 진단 허브 표준 수집기가 파일 작업을 잘못 처리하는 경우 권한 상승 취약성이 존재합니다. 이 취약성을 성공적으로 악용한 공격자가 상승된 컨텍스트에서 프로세스를 실행할 수 있습니다.

CVE-2020-16856 Visual Studio 원격 코드 실행 취약성 Visual Studio가 메모리의 개체를 부적절하게 처리하는 경우 Visual Studio에 원격 코드 실행 취약성이 있습니다. 취약성을 이용할 줄 아는 공격자는 현재 사용자의 컨텍스트에서 임의 코드를 실행할 수 있습니다.

CVE-2020-16874 Visual Studio 원격 코드 실행 취약성 Visual Studio가 메모리의 개체를 부적절하게 처리하는 경우 Visual Studio에 원격 코드 실행 취약성이 있습니다. 취약성을 이용할 줄 아는 공격자는 현재 사용자의 컨텍스트에서 임의 코드를 실행할 수 있습니다.

CVE-2020-1045 Microsoft ASP.NET Core 보안 기능 바이패스 취약성 보안 기능 바이패스 취약성은 Microsoft ASP.NET Core에서 인코딩된 쿠키 이름을 구문 분석하는 방식으로 존재합니다. ASP.NET Core 쿠키 파서는 악의적인 공격자가 이름이 퍼센트 인코딩된 두 번째 쿠키를 설정하는 데 사용할 수 있는 전체 쿠키 문자열을 디코딩합니다.

이 릴리스에서 해결된 추가 문제

  • 패턴 일치를 사용하는 switch 문 또는 swittch 식에 대한 컴파일러 크래시 문제를 해결했습니다.
  • 테스트 실행을 종료하여 유닛 테스트에 대한 “디버깅 중지(Shift+F5)” 워크플로를 복원했습니다.
  • WinForms .NET Core 디자이너에 저장하지 않은 변경 내용이 있는 경우 프로젝트 구성을 전환할 때 VS 크래시를 방지합니다.
  • .NET Core의 지원되지 않는 버전은 VS 설치 외부에서 제거된 경우 복구 또는 업그레이드 중에 더 이상 다시 설치되지 않습니다.
  • 파일에서 찾기에서 외부 종속성이 정확하게 검색되지 않는 문제를 해결했습니다.
  • 솔루션 탐색기의 상황에 맞는 메뉴에서 Git 하위 메뉴에 “커밋...” 단추를 다시 도입했습니다.
  • TFVC 체크 인 메모 레이블을 표시하지 않는 버그를 수정했습니다.
  • 여러 대상 프레임워크를 사용하는 SDK 스타일 csproj에서 WinForm 디자이너를 사용할 때 발생하는 크래시를 해결합니다.
  • <d:Style.DataContext>가 잘못된 표시 오류를 보고하는 문제를 해결했습니다.

Visual Studio 2019 버전 16.7.3에서 해결된 주요 Developer Community 문제


Release Notes Icon Visual Studio 2019 버전 16.7.2

‘릴리스 날짜: 2020년 8월 18일’

Visual Studio 2019 버전 16.7.2 릴리스

Visual Studio 2019 버전 16.7.2에서 해결된 주요 Developer Community 문제


Release Notes Icon Visual Studio 2019 버전 16.7.1

‘릴리스 날짜: 2020년 8월 11일’

Visual Studio 2019 버전 16.7.1 릴리스

Visual Studio 2019 버전 16.7.1에서 해결된 주요 Developer Community 문제


Release Notes Icon Visual Studio 2019 버전 16.7.0

‘릴리스 날짜: 2020년 8월 5일’

Visual Studio 2019 버전 16.7.0 릴리스

C++

  • 이제 원격 C++ 지원에서 sh, csh, bash, tsch, ksh, zsh 및 dash를 비롯해 더 광범위한 Linux 배포판 및 셸을 지원합니다. ConnectionManager.exe를 통해 새 “shell” 속성을 수정하여 원격 연결의 셸 선택을 재정의할 수 있습니다. 이 지원은 원격 Linux 시스템 또는 WSL을 대상으로 하는 CMake 프로젝트와 MSBuild 기반 Linux 프로젝트 모두에서 테스트되었습니다.
  • 이제 Ninja(증분 빌드를 매우 빠르게 평가하는 빌드 시스템)를 사용하여 MSBuild 기반 Linux 프로젝트의 증분 빌드 시간을 단축할 수 있습니다. 이 기능을 옵트인하려면 일반 속성 페이지에서 “Enable Incremental Build”(증분 빌드 사용)를 “With Ninja”(Ninja 사용)로 설정합니다. Ninja(ninja-build)가 원격 Linux 시스템 또는 WSL에 설치되어 있어야 합니다.
  • 새 C++20 표준 라이브러리 기능이 구현되었습니다. 자세한 목록은 GitHub의 STL 변경 로그를 참조하세요.
  • 이제 연결 관리자에서 기본 원격 SSH 연결을 편집하고 설정할 수 있습니다. 즉, 기존 원격 연결을 편집하고(예: IP 주소가 변경된 경우) CMakeSettings.json 및 launch.vs.json에서 기본 연결을 사용하도록 설정할 수 있습니다. 원격 SSH 연결을 사용하면 Visual Studio에서 직접 원격 Linux 시스템의 C++ 프로젝트를 빌드하고 디버그할 수 있습니다.
Edit remote connections in the Connection Manager
연결 관리자에서 원격 연결 편집
  • Visual Studio에서 Windows의 Clang(clang-cl)에 대한 IntelliSense 지원이 향상되었습니다. 이제 clang 포함 경로에 clang 라이브러리가 포함되며, 표준 라이브러리를 사용할 때의 편집기 내 물결선 표시를 개선하고 clang 모드에서 C++2a에 대한 지원을 추가했습니다.
  • 이제 코드 오류에 밑줄을 표시하고 C++ 프로젝트에서 제안된 빠른 수정 사항을 확인할 수 있습니다. 도구 > 옵션 > 텍스트 편집기 > C/C++ > 실험적 > ‘실험적 코드 Linter 사용 안 함’을 false로 설정하여 이 기능을 사용하도록 설정합니다. C++ 팀 블로그에서 자세히 알아보세요.
IntelliSense code linter
IntelliSense 코드 Linter
  • 추가 보안 기능을 C++에 통합하는 네 가지 새로운 코드 분석 규칙을 추가했습니다. C26817, C26818, C26819, and C26820.
  • gdbserver를 사용하여 원격 시스템에서 CMake 프로젝트를 디버그하기 위한 최고 수준의 지원이 추가되었습니다.
  • Visual Studio에서 C++용 AddressSanitizer의 실험적 구현(이제 x64 네이티브 프로젝트에 사용할 수 있음)으로 메모리 손상 오류를 쉽게 찾을 수 있습니다. 또한 이제 디버그 런타임(/MTd, /MDd, /LDd) 사용을 지원합니다.
  • IntelliSense에서 이제 개념, 지정된 이니셜라이저 및 몇 가지 다른 C++20 기능을 기본적으로 지원합니다.
  • .ixx 및 .cppm 파일은 이제 C++로 인식되며 구문 형광펜과 IntelliSense에서 이와 같이 처리됩니다.

동적으로 재생 목록 정의

이제 프로젝트, 클래스 또는 네임스페이스를 기반으로 재생 목록을 동적으로 정의할 수 있습니다. 즉, 특정 프로젝트/클래스/네임스페이스의 모든 항목을 포함하도록 재생 목록을 구성할 수 있습니다. 해당 그룹에 추가된 새 테스트는 자동으로 재생 목록에 포함됩니다.

  • 테스트 탐색기에서 프로젝트, 네임스페이스 또는 클래스 그룹화를 마우스 오른쪽 단추로 클릭하여 재생 목록을 만드세요.
Test Explorer: Create a playlist
테스트 탐색기: 재생 목록 만들기
  • 도구 모음에서 편집 단추를 클릭하여 재생 목록에 포함되는 그룹을 편집합니다. 확인란이 나타납니다. 원하는 대로 그룹을 편집합니다.
Test Explorer: Edit a playlist
테스트 탐색기: 재생 목록 편집
  • 이러한 재생 목록은 테스트의 정적 목록이 아니며 규칙에 따라 동적으로 업데이트됩니다. 동적 재생 목록을 생성하는 규칙을 더 잘 이해하려면 저장 단추를 사용하여 재생 목록 파일을 디스크에 저장하고 xml로 생성된 규칙을 확인합니다.
PlayList file dynamic rule set
PlayList 파일 동적 규칙 집합
  • 개별 테스트를 계속 포함/제외할 수 있으며, 재생 목록은 동적 규칙을 업데이트하거나 테스트를 정적 목록으로 추적하도록 다시 전환할 수 있습니다. 또한 특성을 사용하면 재생 목록 xml 파일을 직접 편집하여 동적 그룹을 정의할 수 있습니다.

Git 생산성

이 환경을 사용하려면 도구 | 옵션 | 환경에서 ‘새 Git 사용자 환경’ 미리 보기 기능을 켭니다.

  • 원하는 폴더 또는 새로운 폴더에서 시작하여 새 Git 리포지토리 만들기
  • 새 복제 작업을 시작하기 전에 열려 있는 폴더 또는 솔루션을 저장하고 닫습니다.
  • 커밋 텍스트 상자에서 커밋 또는 스태시 메시지 오류를 명확히 표시합니다.
  • 새 Git 리포지토리 창의 트리 뷰에서 Git 분기 보기 및 관리
  • Git 리포지토리 창에서 각 분기의 기록 그래프 간 전환 및 그래프 조작
  • Git 리포지토리 창에서 들어오고 나가는 커밋 보기
  • 최신 기능에 대한 자세한 정보가 포함된 Git 생산성 팀 블로그
Manage branches and view history in a focused Git Repository window
포커스가 있는 Git 리포지토리 창에서 분기 관리 및 기록 보기

다음을 사용하여 Git에 포커스가 있는 병합 편집기와 병합 충돌을 해결합니다.

  • 병합 충돌을 포함하는 파일의 정보 표시줄에 병합 편집기를 열지 확인하는 메시지가 표시됩니다.
  • 제목과 캡션에서 더 많은 정보를 제공하고 병합 편집기의 내용이 더 깔끔하게 표시됩니다.
  • 일치하는 줄을 정렬하고, 단어 수준 차이를 표시하고, 공백을 표시하여(공백이 유일한 차이점인 경우) 충돌 항목 간 차이점을 나타냅니다.
  • 파일 수준의 양방향 병합에 충돌이 추가됩니다.
  • 한 번의 클릭으로 양방향 충돌을 모두 해결할 수 있습니다.
  • 충돌하지 않는 차이점은 무시하고 충돌 항목에만 집중하도록 전환합니다.
New Merge Editor Experience
병합 편집기와 병합 충돌 해결

JavaScript/TypeScript

  • LiveShare 시나리오를 더 잘 지원할 수 있도록 완료 및 요약 정보 구현이 업데이트되었습니다.

Kubernetes를 사용한 로컬 프로세스

Local Process with Kubernetes
Kubernetes를 사용한 로컬 프로세스

Kubernetes를 사용한 로컬 프로세스를 사용하면 나머지 애플리케이션 또는 서비스를 Kubernetes 클러스터에 연결한 상태에서 개발 워크스테이션에서 .NET 코드를 작성, 테스트 및 디버그할 수 있습니다. 개발 워크스테이션을 클러스터에 연결하면 개발 컴퓨터에서 종속 서비스를 수동으로 실행하고 구성할 필요가 없습니다. 클러스터의 환경 변수, 연결 문자열 및 볼륨을 로컬로 실행되는 마이크로 서비스 코드에서 사용할 수 있습니다. Dockerfile 또는 Kubernetes 매니페스트와 같은 추가 자산이 필요하지 않습니다. 평소에 하던 방식으로 .NET 코드를 실행, 디버그 및 테스트합니다.

Kubernetes로 로컬 프로세스를 사용하도록 설정하려면 도구 > 옵션 > 환경 > 미리 보기 기능으로 이동하고 “Kubernetes 서비스에 로컬 디버깅 사용”을 선택합니다.

Enable Preview Features
미리 보기 기능 사용

.NET 콘솔 애플리케이션의 경우 추가 단계가 필요합니다. “Microsoft.VisualStudio.Azure.Kubernetes.Tools.Targets” Nuget 패키지를 설치합니다.

.NET 생산성

이제 비표시 오류(Suppression) 연산자가 있지만 영향을 주지 않는 경우 경고와 코드 수정이 표시됩니다. 올바른 부정 식을 제안하는 두 번째 코드 수정도 사용할 수 있습니다. 비표시 오류(Suppression) 연산자에 커서를 놓습니다. (Ctrl + .)을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다. 다음 중 하나를 선택합니다.

  • 연산자를 완전히 제거하려면 Remove operator (preserves semantics):
Code fix to remove suppression operator
Code fix to remove suppression operator(연산자 제거(의미 체계 유지): 비표시 오류(Suppression) 연산자를 제거하는 코드 수정)를 선택합니다.
  • 식을 부정하려면 Negate expression (change semantics):
Code fix to negate expression
Code fix to negate expression(식 부정(의미 체계 변경): 식을 부정하는 코드 수정)을 선택합니다.
  • 프로젝트에서 사용할 수 있는 경우 새로운 C# 9 not 패턴인
Code fix to negate expression using not
Code fix to negate expression using not(not을 사용하여 식을 부정하는 코드 수정)을 사용하여 식을 부정할 수도 있습니다.

이제 한 형식의 생성자를 생성할 때 속성을 생성할 수 있습니다. 커서를 인스턴스에 놓습니다. (Ctrl + .)을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다. <QualifiedName>에서 생성자 생성(속성 사용)을 선택합니다.

Generate properties when generating constructor
생성자를 생성할 때 속성 생성
  • 이제 요약 정보에 도움말 링크와 함께 진단 ID가 표시됩니다. 도움말 링크를 통해 설명서로 쉽게 이동하여 코드의 경고 및 오류에 대해 자세히 알아볼 수 있습니다.
Quick Info Diagnostic ID and Help Link
요약 정보 진단 ID 및 도움말 링크
  • 이제 디버거 표시 특성을 클래스에 추가하는 빠른 작업이 생겼습니다. 이를 통해 코드에서 프로그래밍 방식으로 디버거 안에 속성을 고정할 수 있습니다. 커서를 클래스 이름에 놓습니다. (Ctrl+.)을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다. 'DebuggerDisplay' 특성 추가를 선택합니다. 이렇게 하면 디버거 표시 특성이 클래스 맨 위에 추가되고 ToString()을 반환하는 자동 메서드가 생성됩니다. 이 메서드를 편집하여 디버거에 고정하려는 속성 값을 반환할 수 있습니다.
Add Debugger Display Attribute
디버거 표시 특성 추가
  • 이제 실수로 인한 동일 변수에 할당 또는 동일 변수와의 비교에 대한 코드 수정이 생겼습니다. 커서를 경고에 놓습니다. (Ctrl+.)을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다. 실수로 인한 할당의 경우 <QualifiedName>.value에 할당을 선택합니다. 실수로 인한 비교의 경우 <QualifiedName>.value와 비교를 선택합니다.
Accidental Assignments Code Fix
실수로 인한 할당 코드 수정
Accidental Comparisons Code Fix
실수로 인한 비교 코드 수정
  • 이제 IComparable을 구현하는 형식의 비교 연산자를 생성할 수 있습니다. 클래스 내부 또는 IComparable에 커서를 놓습니다. (Ctrl+.)을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다. 비교 연산자 생성을 선택합니다. 비교 연산자와 함께 상용구가 생성됩니다.
Generate Comparison Operators
비교 연산자 생성
  • 이제 구조체의 .Equals를 생성할 때 IEquatable 연산자를 생성할 수 있습니다. 값 형식의 Equals 및 GetHashCode 생성을 위한 리팩터링은 이미 있습니다. 이제 구조체를 사용하여 IEquatable뿐만 아니라 equals 및 not equals 연산자를 자동으로 추가합니다. 구조체 안에 커서를 놓습니다. (Ctrl+.)을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다. Equals(object) 생성을 선택합니다.
Generate IEquatable Operators
IEquatable 연산자 생성
  • 이제 사용하지 않는 모든 생성자 매개 변수의 속성 또는 필드를 만들고 할당할 수 있습니다. 개별 매개 변수에서 이 작업을 수행할 수 있는 빠른 작업은 이미 있지만 이제는 사용되지 않는 모든 매개 변수에 대해 동시에 이 작업을 수행할 수 있습니다. 나머지 매개 변수 중 하나에 커서를 놓습니다. (Ctrl+.)을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다. 속성을 만들고 초기화하려면 나머지를 만들고 속성으로 할당을 선택합니다. 필드를 만들고 초기화하려면 나머지를 만들고 필드로 할당을 선택합니다.
Create and Assign Remaining Fields
나머지 필드를 만들고 할당
Create and Assign Remaining Properties
나머지 속성을 만들고 할당
  • 이제 DateTime 및 TimeSpan 문자열 리터럴에 IntelliSense 완성이 생겼습니다. DateTime 또는 TimeSpan 문자열 리터럴 내부에 커서를 놓고 (Ctrl+스페이스)를 누릅니다. 그러면 완성 옵션과 각 문자의 의미에 대한 설명이 표시됩니다. 날짜/시간 형식과 예시가 모두 제공됩니다.
IntelliSense Completion in DateTime and TimeSpan
DateTime 및 TimeSpan 문자열 리터럴의 IntelliSense 완성
  • 이제 서명 변경 대화 상자 내에서 매개 변수를 추가할 수 있습니다. 메서드의 서명 안에 커서를 놓습니다. (Ctrl+.)을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다. 서명 변경을 선택합니다. 이제 추가를 선택하여 매개 변수를 추가할 수 있는 다음 대화 상자가 열립니다. 추가를 선택하면 새 매개 변수 추가 대화 상자가 열립니다. 매개 변수 추가 대화 상자를 사용하여 형식 이름과 매개 변수 이름을 추가할 수 있습니다. 매개 변수를 필수 매개 변수로 설정하거나 기본값을 사용하여 선택적 매개 변수로 설정할 수 있습니다. 그런 다음 호출 사이트에서 값을 추가하고 해당 값의 명명된 인수를 선택하거나 TODO 변수를 도입할 수 있습니다. TODO 변수는 코드에 TODO를 넣으므로 각 오류를 방문하고 각 호출 사이트를 독립적으로 조사하여 무엇을 전달할지 결정할 수 있습니다. 선택적 매개 변수의 경우 호출 사이트를 완전히 생략하는 옵션이 있습니다.
Change Signature Dialog
서명 변경 대화 상자
Add Parameter Dialog
매개 변수 추가 대화 상자
  • 이제 분석기 작성자는 NuGet과 함께 분석기를 배송할 때 CompletionProviders를 IntelliSense 완성에 사용할 수 있습니다. 이전에는 CompletionProviders를 VSIX에서만 사용할 수 있었기 때문에 라이브러리 작성자는 별도의 VSIX를 만들어야 했습니다. 이제 라이브러리 작성자는 분석기가 있는 NuGet 패키지에서 IntelliSense 완성을 구현할 수 있으며 별도로 구현할 필요가 없습니다. NuGet 패키지에서 구현된 완성 공급자는 개별 프로젝트와 관련된 제안 사항도 제공하며 기능을 지원하는 각 IDE에서 자동으로 작동합니다.

Razor

Enable experimental Razor editor(실험적 Razor 편집기 사용) 미리 보기 기능을 선택하여 모든 Razor 파일(.cshtml/.razor)에서 새로운 실험적 LSP(언어 서버 프로토콜) 기반 Razor 편집기를 사용해 보세요.

테스트 탐색기

Run/Debug All Tests In View(보기의 모든 테스트 실행/디버그)가 테스트 탐색기에 추가되었습니다. 해당 명령으로 모든 테스트 실행모든 테스트 디버그 명령이 테스트 편집기에서 표시되던 위치가 바뀝니다. 이 변경으로 인해 해당 명령이 테스트 탐색기의 필터를 적용하여 창에 표시된 테스트만 실행합니다. 여기에는 열 필터와 검색 상자 필터가 모두 포함됩니다.

Test Explorer Run/Debug All Tests in View commands
테스트 탐색기의 보기의 모든 테스트 실행/디버그 명령

Global Run/Debug All(전역 실행/모두 디버그) 명령이 이제 최상위 테스트 메뉴에만 표시됩니다. 해당 명령은 테스트 탐색기 도구 모음이나 테스트 창 보기의 상황에 맞는 메뉴에는 포함되지 않습니다. 테스트 탐색기에서 트리거되는 경우 모든 테스트에 대한 코드 검사가 이제 테스트 창 보기에도 적용됩니다.

바로 가기 키:

  • Ctrl R, A - 모든 테스트 실행 - 전역 명령은 항상 모든 테스트를 실행합니다.
  • Ctrl R, V - Run All Tests In View(보기의 모든 테스트 실행) - 테스트 창(테스트 탐색기, 재생 목록, Live Unit Testing 창)이 활성 창인 경우 유효한 명령만 실행합니다.
  • Ctrl R, Ctrl A - 모든 테스트 디버그 - 글로벌 명령은 항상 모든 테스트를 실행합니다.
  • Ctrl R, Ctrl V - Debug All Tests In View(보기의 모든 테스트 디버그) - 테스트 창(테스트 탐색기, 재생 목록, Live Unit Testing 창)이 활성 창인 경우 유효한 명령만 실행합니다.

디버거

네이티브 포인터를 통해 관리형 COM 개체 보기

이 기능은 네이티브 포인터에서 참조하는 관리형 COM 개체를 자동으로 디코드하여 지역 창에서 값을 완벽하게 검사할 수 있도록 합니다. 자세한 내용은 Visual Studio 블로그에서 확인할 수 있습니다.

프로파일러

새 .NET 성능 카운터 도구

.NET Performance Counters Tool
.NET 성능 카운터 도구

.NET 성능 카운터 도구를 사용하여 Visual Studio 프로파일러 내에서 직접 dotnet 카운터를 시각화합니다. 도구를 사용해 보려면 디버그 -> 성능 프로파일러 -> .NET 성능 카운터 도구 확인 표시로 이동합니다.

Xamarin

  • Android 레이아웃 파일 사용자에게 흔히 발행하는 문제 유형을 해결하기 위해 코드 수정 도구가 도입되었습니다.
  • 이제 Xamarin.Forms 템플릿 선택 환경이 더 많은 설명이 포함된 새로운 모양으로 개선되었고 플라이아웃 및 탭 템플릿에서 Shell을 활용합니다. 여기에서 Shell에 대해 자세히 알아보세요. Shell을 사용하지 않으려는 경우 빈 템플릿을 사용하세요.
New Xamarin.Forms template selection experience
Xamarin.Forms 템플릿 선택

XAML 도구(WPF, UWP 및 Xamarin.Forms)

XAML 핫 다시 로드:

  • 앱 내 도구 모음 개선 사항: WPF 및 UWP용 XAML 핫 다시 로드 도구 워크플로의 일부인 앱 내 도구 모음 환경을 더욱 개선했습니다. 변경 내용으로는 도구 모음이 짧아져 실행 중인 애플리케이션을 더 이상 가리지 않는 것과 축소 메커니즘이 변경되어 클릭 시 XAML 핫 다시 로드 텍스트가 먼저 축소되고 두 번째 클릭 시 도구 모음 전체가 축소되는 것 등이 있습니다.

XAML 디자이너:

  • WPF 및 UWP에 대한 확장된 디자인 타임 데이터 지원: 이 릴리스에서는 WPF .NET Core 및 UWP 개발자를 위한 새로운 디자인 타임 데이터 기능을 소개합니다. 해당 새 기능은 d: 접두사를 사용하여 액세스할 수 있는 디자인 타임 속성의 현재 목록을 확장합니다. Xamarin.Forms 개발자에게는 친숙한 기능인데, “d:” 접두사를 사용하여 디자인 타임에만 렌더링되어야 하고 실행 중인 앱으로 컴파일되지 않는 속성을 나타내어 디자인 타임 UI 유효성 검사에 매우 안전하게 사용하는 방식을 그대로 제공하기 때문입니다. 이 릴리스에서는 WPF 및 UWP의 기본 컨트롤을 모두 지원하며 향후 릴리스에서는 타사 및 사용자 지정 컨트롤을 지원할 계획입니다.
  • XAML 디자이너 새로 고침 단추: XAML 디자이너에 새로 고침 단추를 추가했습니다. 이 새 아이콘은 확대/축소 수준 표시기 근처의 왼쪽 아래 아이콘 영역에서 찾을 수 있습니다. 이 새로 고침 작업은 디자이너 뷰를 닫은 후 다시 여는 작업(드물지만 렌더링 문제 해결을 위해 필요한 경우)과 동일하게 다시 설정합니다. 이 기능은 WPF .NET Core 및 UWP 개발자가 사용할 수 있습니다.

XAML 코드 편집기:

  • 색 시각화 도우미: WPF .NET Core, WPF .NET Framework 및 Xamarin.Froms 프로젝트의 XAML 코드 편집기에서 새로운 색 시각화 도우미를 추가로 개선했습니다. 이번 릴리스에서는 지난 미리 보기에서 지원되지 않던 리소스에서 가져오는 색을 시각화하는 기능이 추가로 지원됩니다.
Inline Color Previews in XAML Code Editor
XAML 코드 편집기의 인라인 색 미리 보기

패키지 참조 없이 NuGet 패키지의 도구 상자 항목 표시

대부분의 컨트롤 라이브러리 작성자는 현재 프로젝트에서 라이브러리를 참조하지 않은 경우에도 도구 상자에 컨트롤을 표시하려고 합니다. 그러면 검색 기능을 사용하는 데 도움이 됩니다. WPF .NET Framework SDK에서는 지금까지 이 용도로 레지스트리 항목을 사용했지만 .NET Core에서는 지원되지 않습니다. WPF .NET Core의 경우 이제 NuGet 대체 폴더의 WPF .NET Core NuGet 패키지 내에 있는 VisualStudioToolsManifest.xml 파일의 컨트롤로 도구 상자를 채울 수 있습니다. 자세한 내용은 XAML 디자이너 확장성 GitHub 리포지토리의 설명서를 참조하세요.

Windows Forms

.NET Core용 Windows Forms 디자이너

이제 .NET Core 프로젝트용 Windows Forms 디자이너를 사용할 수 있습니다. Visual Studio에서 디자이너를 사용하도록 설정하려면 도구 > 옵션 > 환경 > 미리 보기 기능으로 이동하여 .NET Core 앱에 미리 보기 Windows Forms 디자이너 사용 옵션을 선택합니다.

이 릴리스에서는 다른 개선 사항과 함께 다음 컨트롤이 지원됩니다.

  • UserControl 및 사용자 지정 컨트롤 인프라
  • TableLayoutPanel
  • 타사 컨트롤 지원 기본 사항
  • 데이터 바인딩 지원 기본 사항
  • TableLayoutPanel과의 디자이너 상호 작용 개선 사항

버그 수정

Visual Studio 2019 버전 16.7.0에서 해결된 주요 문제

  • WMI 공급자 구성 요소 설치 실패 오류를 해결했습니다.
  • 사용자가 막대 아래쪽의 왼쪽 단추를 클릭하여 테스트 실행 진행률을 볼 수 없는 문제를 해결했습니다.
  • 사용 가능한 Visual Studio 코드 공간 청구 플랜을 검색하는 성능이 향상되었습니다.
  • Visual Studio 코드 공간을 만들 때 기본 일시 중단 시간이 30분에서 3시간으로 변경되었습니다.
  • Git 변경 내용 창이 사용자에게 들어오는 커밋/나가는 커밋이 있음을(실제로 없는 경우) 알리는 버그를 해결합니다.
  • 진단 도구 및 성능 프로파일러의 안정성이 개선되었습니다.
  • 부 버전이 일치하지 않아 Azure Sphere Visual Studio 확장이 자동으로 업데이트되지 않는 문제를 해결했습니다. 해당 문제를 해결하여 Azure Sphere는 VSIX 자동 업데이트 프로그램을 실행할 때 자동으로 업데이트될 수 있습니다.

Developer Community


알려진 문제

아래 링크에 따라 Visual Studio 2019에서 알려진 미해결 문제 및 해결 방법을 모두 확인하세요.

피드백 및 제안

많은 의견 부탁드립니다! 문제가 있으면 설치 관리자나 Visual Studio IDE 자체의 오른쪽 위에서 문제 보고 옵션을 통해 알려주세요. Feedback Icon 아이콘은 오른쪽 위 모서리에 있습니다. Visual Studio 개발자 커뮤니티에서 제품에 대해 제안하거나 문제를 추적하고, 질문하고 대답을 찾고 새로운 기능을 제안할 수 있습니다. 라이브 채팅 지원을 통해 무료 설치 도움말을 가져올 수도 있습니다.


Blogs

개발자 도구 블로그 사이트에서 사용 가능한 인사이트 및 권장 사항을 활용하여 모든 새 릴리스에 대한 최신 정보와 다양한 기능에 대한 심층적인 게시물을 확인하세요.


Visual Studio 2019 릴리스 정보 기록

이전 버전의 Visual Studio 2019와 관련된 자세한 내용은 Visual Studio 2019 릴리스 정보 기록 페이지를 참조하세요.


맨 위로 이동