Visual Studio 2019 버전 16.8 릴리스 정보
개발자 커뮤니티 | 시스템 요구 사항 | 호환성 | 배포 가능 코드 | 릴리스 기록 | 사용 조건 | 블로그 Visual Studio Docs | 의 새로운 기능
참고 항목
이것은 최신 버전의 Visual Studio가 아닙니다. 최신 릴리스를 다운로드하려면 Visual Studio 사이트를 방문하세요.
Visual Studio 2019 버전 16.8의 새로운 기능
지원 기간
이 버전은 이제 지원되지 않습니다. Visual Studio 지원에 대한 자세한 내용은 Visual Studio 2019에 대한 지원 정책을 검토하세요.
최신 버전의 릴리스 정보를 참조하거나 Visual Studio 사이트를 방문하여 지원되는 최신 버전의 Visual Studio 2019를 다운로드합니다.
Visual Studio 2019 버전 16.8 릴리스
- 2021년 3월 9일 — Visual Studio 2019 버전 16.8.7
- 2021년 2월 22일 - Visual Studio 2019 버전 16.8.6
- 2021년 2월 9일 - Visual Studio 2019 버전 16.8.5
- 2021년 1월 12일 - Visual Studio 2019 버전 16.8.4
- 2020년 12월 8일 - Visual Studio 2019 버전 16.8.3
- 2020년 11월 19일 - Visual Studio 2019 버전 16.8.2
- 2020년 11월 12일 - Visual Studio 2019 버전 16.8.1
- 2020년 11월 10일 - Visual Studio 2019 버전 16.8.0
Visual Studio 2019 보관된 릴리스 정보
- Visual Studio 2019 버전 16.7 릴리스 정보
- Visual Studio 2019 버전 16.6 릴리스 정보
- Visual Studio 2019 버전 16.5 릴리스 정보
- Visual Studio 2019 버전 16.4 릴리스 정보
- Visual Studio 2019 버전 16.3 릴리스 정보
- Visual Studio 2019 버전 16.2 릴리스 정보
- Visual Studio 2019 버전 16.1 릴리스 정보
- Visual Studio 2019 버전 16.0 릴리스 정보
Visual Studio 2019 블로그
Visual Studio 2019 블로그는 Visual Studio 엔지니어링 팀에서 제공하는 제품 인사이트에 대한 공식적인 정보원입니다. 다음 게시물에서 Visual Studio 2019 릴리스에 대한 자세한 정보를 찾을 수 있습니다.
- Visual Studio 2019 v16.9 미리 보기 3 출시!
- Visual Studio 2019 v16.9 미리 보기 2 및 새해 인사드립니다!
- Visual Studio 2019 v16.8 및 v16.9 미리 보기 오늘 출시
- Visual Studio 2019 v16.8 미리 보기 3.1의 새로운 기능
- Visual Studio 2019 v16.8 미리 보기 2에서 새로운 기능 오늘 출시!
- Visual Studio 2019 v16.7 및 v16.8 미리 보기 1 오늘 출시!
- Visual Studio 2019 v16.7 미리 보기 2 출시!
- Visual Studio의 Git 환경에 대한 흥미로운 새 업데이트
- 오늘 릴리스됩니다! Visual Studio 2019 v16.6 및 v16.7 미리 보기 1
- Visual Studio 2019 버전 16.6 미리 보기 2에서 새로운 기능 릴리스
- 이제 Visual Studio 2019 버전 16.5를 사용할 수 있습니다!
- 'Visual Studio 2019 v16.4 릴리스 시즌
- Visual Studio 2019 v16.4 미리 보기 2, Fall Sports, and Pumpkin Spice
- Visual Studio 2019 버전 16.3의 .NET Core 지원 및 기타 기능 - 지금 업데이트!
- Visual Studio 2019 버전 16.3 미리 보기 2 및 Mac용 Visual Studio 2019 버전 8.3 미리 보기 2가 릴리스되었습니다.
- Visual Studio 2019 버전 16.2 및 16.3 미리 보기 1 출시
- Visual Studio 2019 버전 16.2 미리 보기 2
- Visual Studio 2019 버전 16.1 및 미리 보기 16.2 미리 보기
- Visual Studio 2019: 코드를 더 빠르게 실행합니다. 스마트하게 작업하세요. 미래를 만드세요.
Visual Studio 2019 버전 16.8 미리 보기에서 사용된 모든 Developer Community 항목의 전체 목록 참조
Visual Studio 2019 버전 16.8.7
‘릴리스 날짜: 2021년 3월 9일’
Visual Studio 2019 버전 16.8.7 릴리스에서 해결된 문제
보안 권고 알림
CVE-2021-21300 Git for Visual Studio 원격 코드 실행 취약성
원격 코드 실행 취약성은 Visual Studio에서 악성 리포지토리를 복제하는 경우에 존재합니다.
CVE-2021-26701 .NET Core 원격 코드 실행 취약성
텍스트 인코딩이 수행되는 방식으로 인해 .NET 5 및 .NET Core에 원격 코드 실행 취약성이 존재합니다.
Visual Studio 2019 버전 16.8.6
‘릴리스 날짜: 2021년 2월 22일’
Visual Studio 2019 버전 16.8.6 릴리스에서 해결된 문제
- 개발자가 Azure Functions 또는 Visual Studio 2019의 다른 Azure 리소스에 코드를 푸시하는 것을 차단하는, 우선 순위가 높은 버그를 수정했습니다.
- VS 16.8.5 Git 리포지토리 만들기 - 새 GitHub 리포지토리 만들기 - 퍼블릭(확인되지 않은 프라이빗 옵션) - 실패
Visual Studio 2019 버전 16.8.5
‘릴리스 날짜: 2021년 2월 9일’
보안 권고 알림
CVE-2021-1639 TypeScript 언어 서비스 원격 코드 실행 취약성
Visual Studio가 JavaScript 또는 TypeScript 코드 파일을 포함하는 악성 리포지토리를 로드하는 경우에 원격 코드 실행 취약성이 존재합니다.
CVE-2021-1721 .NET Core 서비스 거부 취약성
X509 인증서 체인을 작성하는 동안 HTTPS 웹 요청을 만드는 경우에 서비스 거부 취약성이 존재합니다.
CVE-2021-24112 .NET 5 및 .NET Core 원격 코드 실행 취약성
그래픽 인터페이스에 참조가 남아 있을 때 메타파일을 삭제하는 경우 원격 코드 실행 취약성이 존재합니다. 이 취약성은 macOS 또는 Linux에서 실행되는 시스템에만 존재합니다.
Visual Studio 2019 버전 16.8.5 릴리스에서 해결된 문제
- ExtensionSDKs 아래에 설치된 x86 Microsoft.VCLibs Appx가 올바른 시그니처로 업데이트되는 문제를 해결했습니다.
- C++ DesignTime 기능을 사용할 때의 메모리 누수 문제를 해결했습니다.
- 기존 데이터베이스를 SSDT 프로젝트로 가져올 때 암호를 기억하지 못하는 경우 예외가 발생하는 문제를 해결했습니다.
- 고객이 처음으로 폴더 또는 다른 호스팅 대상에 .NET Core 프로젝트를 게시할 때 게시 단추를 사용할 수 없는 문제를 해결했습니다.
- 개발자가 게시 프로필 보기 페이지를 열 때 가끔 발생하는 중단 문제를 해결했습니다.
- Xcode 12.4 지원을 추가했습니다.
Developer Community의 항목
- .sqlproj가 변경 내용으로 업데이트되지 않는 문제를 해결했습니다.
- Visual Studio 2019가 Chromium 솔루션의 OOM 오류와 크래시됩니다.
- Visual Studio 2019 버전 16.7.6 최적화 컴파일러의 버그
- 데이터베이스 프로젝트에서 새 항목 > 테이블을 추가하는 경우 Visual Studio가 크래시됩니다.
- VSDIIUnregisterServer로 인해 Visual Studio 2019 속도가 느려집니다.
- 창을 고정하거나 분할할 때 예기치 않은 Visual Studio 2019 크래시가 발생합니다.
Visual Studio 2019 버전 16.8.4
‘릴리스 날짜: 2021년 1월 12일’
보안 권고 알림
CVE-2021-1651 / CVE-2021-1680 진단 허브 표준 수집기 서비스 권한 상승 취약성
권한 상승 취약성은 진단 허브 표준 수집기가 데이터 작업을 잘못 처리하는 경우에 존재합니다.
CVE-2020-26870 Visual Studio 설치 관리자 원격 코드 실행 취약성
원격 코드 실행 취약성은 Visual Studio 설치 관리자가 악성 markdown을 표시하려고 시도하는 경우에 존재합니다.
CVE-2021-1723 ASP.NET Core 및 Visual Studio 서비스 거부 취약성
서비스 거부 취약성은 Kestrel에서 HTTP/2 요청을 구문 분석하는 방식으로 존재합니다.
Visual Studio 2019 버전 16.8.4 릴리스에서 해결된 문제
- IntelliCode가 Visual Studio Marketplace에서 이전 버전의 Visual Studio에 이미 설치된 경우 C# 관련 IntelliCode 구성 요소가 설치되지 않을 수 있는 문제가 해결되었습니다.
- PackageReference 프로젝트에서 PackageReference 종속성이 있는 packages.config 프로젝트를 참조하는 경우 전이적 프로젝트 참조가 적용됩니다.
- Xcode 12.3 지원이 추가되었습니다.
- x86_64 watchOS 7.0+ 시뮬레이터 지원 수정
- 함수에서 반환된 VARIANT 사용에 대한 가양성(C33001~C33005)을 수정했습니다.
- 프로젝트 또는 솔루션을 닫는 동안 WinForms .NET Core 디자이너에서 발생하는 일시적인 VS 크래시를 수정했습니다.
- 고정 데이터베이스 프로젝트: 솔루션 탐색기에서 열린 파일로 파일을 끌어다 놓으면 파일 시스템에서 파일이 삭제됩니다.
- SQL 스키마 비교에서 업데이트를 클릭해도 변경 내용이 sqlproj 파일에 저장되지 않는 문제를 해결했습니다.
- “테이블/열을 찾을 수 없음” 오류로 인해 빌드가 실패한 버그를 수정했습니다.
- 팀 탐색기 -> 분기에서 “병합 후 커밋” 확인란을 수정했습니다.
- 업데이트를 확인하는 동안 Visual Studio가 몇 초 동안 응답하지 않을 수 있는 오류를 해결했습니다.
- 이제 DeploymentAppRecipe.exe 도구는 모든 현재 디렉터리에서의 실행을 지원합니다. 또한 이제 배포에 실패할 때마다 0이 아닌 반환 값을 반환하고 표준 오류 스트림에 오류 메시지를 출력합니다.
Developer Community
- 16.8 업데이트 이후 특정 규칙이 경고로 설정되어 있음에도 불구하고 많은 수의 코드 분석 오류가 발생함
- ClickOnce에서 설치한 .NET Core 3.1 또는 .NET 5.0 애플리케이션이 설치된 후 시작되지 않을 수 있음
- _variant_t를 사용한 C33005 가양성
- Git 병합 및 커밋 작업 버그
- net5.0-windows* TFM을 사용하여 작업 또는 병렬 스택 정보를 볼 수 없음
- SQL 스키마 비교에서 업데이트를 클릭해도 변경 내용이 sqlproj 파일에 저장되지 않음
- 데이터베이스 프로젝트: 솔루션 탐색기에서 열린 파일로 파일을 끌어다 놓으면 파일 시스템에서 파일이 삭제됩니다.
- Visual Studio 2019에서 Intellicode 모델 학습이 실패함
- LiveShare 협업 열기 세션 실패
Visual Studio 2019 버전 16.8.3
릴리스 날짜: 2020년 12월 8일
보안 권고 알림
CVE-2020-17156 Visual Studio 원격 코드 실행 취약성
원격 코드 실행 취약성은 Visual Studio에서 악성 리포지토리를 복제하는 경우에 존재합니다.
Visual Studio 2019 버전 16.8.3 릴리스에서 해결된 문제
- 중첩된 함수 템플릿이 부모 클래스 외부에서 정의되는 경우의 내부 컴파일러 오류가 수정되었습니다.
- 비정적 데이터 멤버의 이니셜라이저에서 ‘this’가 사용되는 경우의 잘못된 오류 C2355가 수정되었습니다.
- /analyze:ruleset 옵션을 /analyze:rulesetdirectory 및/또는 /analyze:projectdirectory 옵션과 사용하는 사용자 지정 규칙 집합에 대한 규칙 집합 로드 오류가 수정되었습니다.
- WinForms .NET Core 디자이너를 사용하는 동안의 Visual Studio의 일시적인 충돌을 수정합니다.
- Visual Studio v 16.8.3에 .NET 5.0.1 삽입
- 일부 UI 컨텍스트가 활성화된 도구 창에서 Visual Studio의 작동 중단을 야기할 수 있는 문제를 해결했습니다.
- Git 원격 추적 분기가 없을 때의 분기 관리 페이지의 푸시를 수정했습니다.
- Xcode 12.2 지원이 추가되었습니다.
Developer Community
Visual Studio 2019 버전 16.8.2
‘릴리스 날짜: 2020년 11월 19일’
Visual Studio 2019 버전 16.8.2 릴리스에서 해결된 문제
- 루프의 최적화 버그가 수정되었습니다.
- 보장된 복사 생략(C++17 기능) 구현에서 내부 컴파일러 오류가 수정되었습니다.
- 무명 형식의 대량 사용에 대한 빌드 성능 재발을 수정했습니다.
- C# 코드를 편집할 때 “지정한 인수가 유효한 값 범위를 벗어났습니다”라는 메시지가 포함된 노란 표시줄이 나타나는 문제를 해결했습니다.
- T4 템플릿이 있는 프로젝트를 빌드할 때 MissingMethodException을 발생시킬 수 있는 문제를 해결했습니다.
- 새 프로젝트 대화 상자의 검색에서 결과가 전혀 반환되지 않을 수 있는 문제를 해결했습니다.
Developer Community
- 노란 표시줄에서 SolutionAssetStorage.GetAssetAsync가 KeyNotFoundException 결과를 보고함
- 디자인 타임 빌드가 ‘GetClCommandLineForReference’ 대상을 찾을 수 없기 때문에 IntelliSense가 실패함
- GetAssetAsync가 IOException(파이프가 끊어짐)을 보고함
- 검색이 작동하지 않음
- 최적화 프로그램이 EH 정보를 잘못 제거하여 일부 예외가 발생하며 크래시 발생
Visual Studio 2019 버전 16.8.1
‘릴리스 날짜: 2020년 11월 12일’
Visual Studio 2019 버전 16.8.1 릴리스에서 해결된 문제
- 팀 탐색기에서 리포지토리를 복제할 때 “‘SourceExplorerPackage’ 패키지가 제대로 로드되지 않았습니다.” 경고가 표시되는, 많은 영향을 미치는 문제를 해결했습니다. 사용자에게 이 문제가 발생하면 제품이 응답하지 않을 수 있습니다.
Visual Studio 2019 버전 16.8.0
‘릴리스 날짜: 2020년 11월 10일’
Visual Studio 2019 버전 16.8의 이번 릴리스 새로운 기능 요약
F#:
- F# 5는 이제 .NET 5와 함께 출시됩니다.
- F# 도구 버전 11.0.0을 통해 Visual Studio 도구에 대한 성능 향상 및 수정
- GitHub에서 사용할 수 있는 전체 릴리스 정보
C++:
- C++20 코루틴은 이제 /std:c++latest 및 <코루틴> 헤더에서 지원됩니다.
- 이제 IntelliSense는 C++20 <개념> 및 <범위> 헤더를 지원하고, 개념 정의의 이름 바꾸기 및 검색을 제공합니다.
- 이제 STL은 대부분의 C++20 범위를 지원합니다.
- 이제 조건부로 트리비얼한 특수 멤버 함수가 MSVC에서 지원됩니다.
- 이제 C11 및 C17은 /std:c11 및 //std:c17 스위치에서 지원됩니다.
- 추가 STL 개선 사항에는 std::atomic_ref, std::midpoint와 std::lerp 및 std::execution::unseq, std::reverse_copy의 최적화 등에 대한 전체 지원이 포함됩니다.
- Visual Studio와 함께 제공되는 CMake 버전을 CMake 3.18로 업그레이드했습니다.
- 이제 코드 분석 도구는 업계 표준 정적 분석 로그 형식인 SARIF 2.1 표준을 지원합니다.
- 이제 Linux 프로젝트의 누락된 빌드 도구는 도구 모음에서 경고를 표시하고, 오류 목록에서 누락된 도구에 대한 명확한 설명을 표시합니다.
- 이제 Visual Studio에서 직접 원격 Linux 시스템 또는 WSL의 Linux 코어 덤프를 디버그할 수 있습니다.
- C++ Doxygen 주석 생성의 경우 추가 주석 스타일 옵션(/*! 및 //!)을 추가했습니다.
- 추가 vcpkg 알림
- 확인되지 않은 컨텍스트에서 람다에 대한 컴파일러 지원
- 다중 스레딩 pdb 생성으로 /debug:full 링크 성능 향상. 여러 대규모 애플리케이션 및 AAA 게임의 경우 연결이 2~4배 빨라집니다.
- 이제 Visual Studio 디버거는 char8_t를 지원합니다.
- clang-cl을 사용하여 ARM64 프로젝트 지원.
- Intel AMX 내장 함수 지원.
- 정확하게 표현 가능한 부동 소수점 숫자를 올바르게 반올림하도록 Dev16.2에서 변경된 부동 소수점 값을 인쇄하는 레거시 동작을 사용하도록 설정하는 새 링크 옵션이
legacy_stdio_float_rounding.obj
추가되었습니다. 자세한 내용은 printf, _printf_l, wprintf, _wprintf_l 참조하세요.
- .NET Core Linux 코어 덤프 디버깅 지원
- .NET 및 .NET Core 자동 분석
- .NET 및 .NET Core 메모리 실행 부하 과다 경로 자동 분석
- Blazor 전구
- C# 전구
- 향상된 Razor 서식 지정
- .razor 파일에서 태그의 Razor 구성 요소 이름 바꾸기
- Blazor 구성 요소 태그 네임스페이스에 대한 정의로 이동
- C# 가리킨 항목 색 지정
- C# 완성 도구 설명 색 지정
- Razor에 대한 정의/구현으로 이동(닫힌 파일 포함)
- 닫힌 Razor 파일의 모든 참조 찾기
- 대규모 프로젝트 및 솔루션에 대한 Razor 편집 성능 및 안정성 향상
- SDK 스타일 프로젝트에 새로운 Fakes 지원을 사용하는 경우 일부 사용자가 shim을 생성할 때 다음과 같은 오류가 발생함
- 새 온라인 설명서에서 모든 Git 기능을 사용하는 방법에 대해 자세히 알아보기
- 언제든지 Git 변경 내용 창, 보기 메뉴 및 상태 표시줄을 통해 Git 리포지토리 창 열기
- Git 변경 내용 창에서 여러 원격으로부터 페치, 풀 및 푸시
- Git 리포지토리 창 위쪽에서 Git 명령에 대한 성공 및 오류 메시지 보기
- Azure DevOps 작업 항목에서 새 분기 만들기
- Git 메뉴의 로컬 리포지토리 목록에서 Git 리포지토리를 엽니다.
- 이제 기본 소스 제어 공급자는 TFVC 대신 Git
- Git 리포지토리 창에서 한 번 클릭으로 분기 기록 간 전환
- 리포지토리를 연 후 솔루션 탐색기에서 솔루션 목록 보기 및 해당 목록에서 선택
- Git 리포지토리 창의 도구 모음을 통한 기록 보기 수정 및 커밋 검색
- 분기의 기록 그래프에 있는 들어오는 커밋 및 나가는 커밋 섹션의 페치, 풀 및 푸시
- 분기를 원격으로 푸시한 후 끌어오기 요청을 만들라는 메시지 표시
- 분기 목록 상황에 맞는 메뉴의 병합 및 다시 지정 명령에서 분기 이름 보기
- 솔루션 탐색기 및 편집기의 상황에 맞는 메뉴를 통한 Git 명령 액세스
- 프로세스를 백그라운드로 이동하는 옵션이 있는 새 모달 대화 상자를 통해 복제 진행률 관찰
IntelliCode:
- Visual Studio 설명서에서 개인 설정된 IntelliCode 완성 가져오기
- 코드베이스를 사용하여 IntelliCode 완성을 최신 상태로 유지하고 팀의 CI 워크플로 설명서의 일부로 공유
- Roslyn 분석기는 이제 .NET 5.0 SDK에 포함
- 제거 연산자가 있는 경우 새 C# 9
not
패턴 일치 구문을 도입하는 리팩터링 - 단일 문 본문 내에서 정적, 인스턴스 및 확장 메서드의 사용을 바꾸는 데 도움이 되는 인라인 메서드 리팩터링
- C#에서
typeof
인스턴스를nameof
로 변환하고 Visual Basic에서GetType
을NameOf
로 변환하는 코드 수정 - 함수 호출의 각 인수 앞에 리터럴, 캐스팅된 리터럴 및 개체 인스턴스화의 도구 영역을 삽입하는 인라인 매개 변수 이름 힌트에 대한 C# 및 Visual Basic 지원
- C# 및 Visual Basic 둘 다에서 선택한 클래스의 멤버를 새 기본 클래스로 추출하는 리팩터링
- 코드 정리에 단일 파일이나 전체 솔루션에서 EditorConfig 파일에 설정된 서식 및 파일 헤더 기본 설정을 적용할 수 있는 새 구성 옵션을 포함
- 인수가 참조로 전달되지 않아야 하는
in
키워드를 제거하는 코드 수정 - 새 C#9 패턴 조합기 및 패턴 일치 제안(예: 해당하는 경우
is
를 사용하도록==
을 변환)을 도입하는 리팩터링 - 추상이 아닌 클래스에서 추상 메서드를 작성하려고 할 때 클래스를 추상으로 설정하는 코드 수정
- 첫 번째 따옴표를 입력하면 DateTime 및 TimeSpan 문자열 리터럴에서 IntelliSense 완성이 자동으로 표시
- 불필요한
pragma suppressions
및 불필요한SuppressMessageAttributes
를 제거하기 위한 코드 수정 Rename
및Find All References
는 전역SuppressMessageAttributes
의 대상 문자열 내의 기호에 대한 참조를 이해- ByVal을 제거하여 불필요함을 나타내고 불필요한 ByVal을 제거하는 코드 수정 사항 제공
- .NET Framework, .NET Core 등의 여러 런타임에 대한 대화형 창 지원
- 분석기 작성자가 추가 파일용 분석기를 만들 수 있는 새로운 RegisterAdditionalFileAction API를 추가
- 계정 관리 환경을 사용하여 Github 계정을 추가
- 이 릴리스에서는 레거시 파일에서 찾기 환경이 사용되지 않으며 모든 사용자가 새로운 환경으로 이동됩니다. 편집기 팀은 최신 파일에서 찾기 환경에서 문제가 발생하여 Developer Community에 피드백을 남기는 사용자들과 협력하고 있습니다.
- 이제 .NET Core 3.1 및 .NET 5.0 Windows 데스크톱 앱에서 ClickOnce 게시 공급자를 사용할 수 있습니다.
- 이제 테스트 탐색기의 테스트 세부 정보 창에서 텍스트를 래핑할 수 있습니다.
XAML 도구(WPF, UWP 및 Xamarin.Forms):
- XAML 바인딩 실패 진단 개선 사항
- XAML 핫 다시 로드 설정을 “디버깅 > 핫 다시 로드”로 이동
- 참조되지 않는 NuGet 패키지에서 도구 상자 채우기
JavaScript/TypeScript:
- 이제 JavaScript/TypeScript 디버거가 서비스 작업자, 웹 작업자, iFrames 및 페이지 JavaScript의 동시 디버깅을 지원합니다. 또한 새 디버깅 환경에서는 백 엔드 노드 서버 애플리케이션과 브라우저의 클라이언트 쪽 JavaScript 동시 디버깅에 대한 지원이 추가되었습니다. 이 기능은 아직 실험적입니다. 디버깅 옵션 메뉴에서 새 디버깅 환경을 사용하도록 설정할 수 있습니다.
- 이제 코드 작업 바로 가기(ctrl+.)를 사용하여 리팩터링을 사용할 수 있는 모든 위치에서 트리거할 수 있습니다. 텍스트를 선택하지 않아도 됩니다. 이제 TypeScript는 사용할 수 있는 가장 적합한 리팩터링에 대한 커서 위치를 확인할 수 있습니다.
- 이제 TypeScript에서 자동 가져오기 완료를 검색하는 패키지를 미세 조정할 수 있습니다. 이로 인해 일부 종속성이 많은 프로젝트에서 성능이 향상될 수 있습니다. 자세한 내용은 TypeScript 4.0(릴리스 정보)[https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-0.html]을 참조하세요.
- Intellisense를 지원하기 위해 설치하는 형식을 표시하는 메시지를 출력 창에 추가했습니다. 사용되는 형식을 사용자 지정하려면 tsconfig를 프로젝트에 추가하는 것이 좋습니다.
- TypeScript 4.0 컴파일러 및 언어 서비스가 포함되어 있습니다.
보안 권고 알림
CVE-2020-17100 Visual Studio 변조 취약성
Visual Studio용 Python 도구가 python27 폴더를 만들 때 변조 취약성이 존재합니다. 이 취약성을 성공적으로 악용한 공격자가 상승된 컨텍스트에서 프로세스를 실행할 수 있습니다.
이 릴리스에서 해결된 문제
- Intel C++ 컴파일러의 80비트 long double을 사용하여 Visual Studio 2019 16.7에서 컴파일하는 경우 컴파일러 오류가 발생하여 프로젝트가 빌드되지 않는 문제를 해결했습니다.
- 일부 시나리오에서 Live Unit Testing이 시작되지 않는 문제를 해결했습니다.
- Visual Studio 2019 v16.8 미리 보기 4에 추가된 .NET 5.0.RC2
- 간헐적으로 Git 작업이 시작되고 완료되지 않는 버그를 해결했습니다.
- Visual Studio Codespaces 만들기 및 연결에 추가 기능을 추가했습니다.
- ASP.NET Core 솔루션을 닫거나 탐색할 때 Visual Studio 2019가 크래시하거나 응답하지 않는 버그를 수정했습니다.
- Visual Studio 2019를 제거했다가 다시 설치한 후 C++ 프로젝트 시스템이 로드되지 않는 문제를 해결했습니다.
Visual Studio 2019 버전 16.8.0의 새로운 기능에 대한 자세한 정보
C++
- C++20 코루틴은 이제 /std:c++latest 및 <코루틴> 헤더에서 지원됩니다. <experimental/coroutine> 및 /await 스위치에서 레거시 동작이 지원됩니다.
- 이제 IntelliSense는 C++20 <개념> 및 <범위> 헤더를 지원하고, 개념 정의의 이름 바꾸기 및 검색을 제공합니다. 미리 보기 4에서 해결할 것으로 예상하는 알려진 문제가 있습니다.
- 이제 STL은 대부분의 C++20 범위를 지원합니다. 범위 GitHub 이슈의 진행률을 추적할 수 있습니다.
- 이제 조건부로 트리비얼한 특수 멤버 함수가 MSVC에서 지원됩니다.
- 이제 C11 및 C17은 /std:c11 및 //std:c17 스위치에서 지원됩니다.
- 추가 STL 개선 사항에는 std::atomic_ref, std::midpoint와 std::lerp 및 std::execution::unseq, std::reverse_copy의 최적화 등에 대한 전체 지원이 포함됩니다. 변경 로그에서 모든 업데이트를 확인할 수 있습니다.
- Visual Studio와 함께 제공되는 CMake 버전을 CMake 3.18로 업그레이드했습니다.
- 이제 코드 분석 도구는 업계 표준 정적 분석 로그 형식인 SARIF 2.1 표준을 지원합니다. SARIF 형식에 대한 자세한 내용은 공식 사양을 참조하세요.
- 이제 Linux 프로젝트의 누락된 빌드 도구는 도구 모음에서 경고를 표시하고, 오류 목록에서 누락된 도구에 대한 명확한 설명을 표시합니다.
- 이제 Visual Studio에서 직접 원격 Linux 시스템 또는 WSL의 Linux 코어 덤프를 디버그할 수 있습니다.
- C++ Doxygen 주석 생성의 경우 추가 주석 스타일 옵션(/*! 및 //!)을 추가했습니다.
- 추가 vcpkg 알림
- decltype 지정자에 람다를 사용할 수 있게 해주는, 확인되지 않은 컨텍스트의 람다에 대한 컴파일러 지원이 추가되었습니다.
- 이제 Visual Studio에서 입력에 따른 Linter 및 픽스업을 사용할 수 있습니다. 도구 -> 옵션 -> 텍스트 편집기 -> C/C++ -> CodeStyle -> Linter + 픽스업을 사용하여 구성합니다.
디버거
.NET Core Linux 코어 덤프 디버깅 지원
지금까지 Windows에서 관리형 Linux 코어 덤프를 디버그하는 것은 어려운 일이었습니다. 이는 일반적으로 프로덕션 환경과 정확히 일치하는 다른 Linux 환경을 설정하고 분석을 위한 도구 세트를 설치하는 것을 의미했습니다. 이제 Visual Studio 2019 16.8 미리 보기 3 덕분에 관리형 Linux 코어 덤프를 IDE에 직접 끌어서 놓고 즉시 디버깅을 시작할 수 있습니다.
.NET 자동 분석
비동기 프로그래밍은 .NET 플랫폼에서 수년간 제공되었지만 제대로 수행하기가 어려웠습니다. 다음과 같은 시나리오 및 안티 패턴을 식별하는 데 도움이 되는 관리되는 메모리 덤프 분석기를 도입했습니다.
- Sync-over-Async
- ‘Threadpool 소모’
.NET 및 .NET Core 메모리 실행 부하 과다 경로 자동 분석
이를 통해 고객은 진단 메모리 도구 창에서 플레임(flame) 주석을 사용하여 메모리 힙의 주 개체 형식을 직관적으로 볼 수 있습니다.
SDK 스타일 프로젝트를 사용하는 Fakes에서 shim 문제 발생
SDK 스타일 프로젝트에 새로운 Fakes 지원을 사용하는 경우 일부 사용자가 shim을 생성할 때 다음과 같은 오류가 발생했습니다.
Cannot generate shim for System.DateTime: type is not supported because of internal limitations
이에 대한 수정 사항은 16.8 Preview 3에서 릴리스되었습니다. 16.7.* 릴리스를 사용하는 경우 다음 해결 방법을 사용할 수 있습니다.
- csproj 파일의 PropertyGroup에 <FakesUseV2Generation>False</FakesUseV2Generation>을 추가합니다.
- csproj 파일의 ItemGroup에 <Fakes Include=“Fakes\*.fakes” />를 추가합니다.
- ProjectDir/FakesAssemblies에서 생성된 Fakes 어셈블리에 대한 참조를 추가합니다.
개발자 커뮤니티 피드백에 따라 추가 업데이트를 수행할 수도 있습니다.
실험적 Razor 편집기 업데이트
이제 새 실험적 Razor 편집기는 다음과 같은 Razor 편집 기능을 지원합니다.
- Blazor 전구:
- 코드 뒤에 추출*:
- 태그에서 구성 요소 만들기*
- 구성 요소에 대한
@using
지시문 추가 - 구성 요소 태그 이름 정규화
- C# 전구
@using
지시문 추가- 유형 이름 정규화
- 향상된 Razor 서식 지정
- .razor 파일에서 태그의 Razor 구성 요소 이름 바꾸기
- Blazor 구성 요소 태그 이름에 대한 정의로 이동
- C# 가리킨 항목 색 지정
- C# 완성 도구 설명 색 지정
- 닫힌 Razor 파일의 모든 참조 찾기
- 대규모 프로젝트 및 솔루션에 대한 Razor 편집 성능 및 안정성 향상
* 로컬 Razor 시나리오에서만 작동하며 Visual Studio Codespaces 또는 Live Share에서는 아직 지원되지 않습니다.
실험적 Razor 편집기를 사용하도록 설정하려면 도구>옵션>환경>미리 보기 기능으로 이동한 후 Enable experimental Razor editor(실험적 Razor 편집기 사용)를 선택하고 Visual Studio를 다시 시작합니다.
Visual Studio 2019 IDE
- 친숙한 Visual Studio 계정 관리 환경을 사용하여 GitHub 계정을 추가합니다. 그러면 버전 제어, 통합 터미널 및 기타 기능을 통해 사용자의 계정 자격 증명을 활용하여 GitHub 인증 요구 사항을 충족할 수 있습니다.
- 이제 .NET Core 3.1 및 .NET 5.0 Windows 데스크톱 앱에서 ClickOnce 게시 공급자를 사용할 수 있습니다. 시작하려면 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 게시를 선택하거나 빌드 > <AppName> 게시 메뉴를 선택합니다. ClickOnce는 폴더 범주에서 찾을 수 있습니다.
Git 생산성
- Azure DevOps 작업 항목에서 새 분기 만들기
- Git 메뉴의 로컬 리포지토리 목록에서 Git 리포지토리를 엽니다.
이제 기본 소스 제어 공급자는 TFVC 대신 Git이며, 도구 - 옵션 - 소스 제어에서 변경할 수 있습니다.
Git 리포지토리 창에서 한 번 클릭으로 분기 기록 간 전환
리포지토리를 연 후 솔루션 탐색기 리포지토리의 솔루션 목록 보기 및 선택
.NET 생산성
- .NET 컴파일러 플랫폼(Roslyn) 분석기는 C# 또는 Visual Basic 코드를 검사하여 보안, 성능, 디자인 및 기타 문제를 확인합니다. .NET 5.0부터 이러한 분석기는 .NET SDK에 포함되어 있습니다. .NET 5.0 이상을 대상으로 하는 프로젝트의 경우 분석기가 기본적으로 사용하도록 설정되어 있습니다. EnableNETAnalyzers 속성을 true로 설정하여 이전 버전의 .NET을 대상으로 하는 프로젝트에서 코드 분석을 사용하도록 설정할 수 있습니다. EnableNETAnalyzers를 false로 설정하여 프로젝트에서 코드 분석을 사용하지 않도록 설정할 수 있습니다. 프로젝트 속성 창을 사용하여 .NET 분석기를 사용하거나 사용하지 않도록 설정할 수도 있습니다. 프로젝트 속성 창에 액세스하려면 솔루션 탐색기 내에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. 그런 다음, .NET 분석기 사용 확인란을 선택하거나 선택 취소할 수 있는 코드 분석 탭을 선택합니다.
- 이제 제거 연산자가 있는 경우 새 C# 9
not
패턴 일치 구문을 도입하는 리팩터링이 있습니다. 비표시 오류(Suppression) 연산자에 커서를 놓습니다. (Ctrl+.)을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다. ‘패턴 일치 사용’을 선택합니다.
- 이제 원래 메서드 선언을 제거하는 옵션과 함께 단일 문 본문 내에서 정적, 인스턴스 및 확장 메서드의 사용을 바꾸는 데 도움이 되는 인라인 메서드 리팩터링이 있습니다. 메서드 사용에 커서를 놓습니다. (Ctrl+.)을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다. 다음으로, 다음 옵션 중 하나를 선택합니다.
인라인 메서드 선언을 제거하려면 인라인 <QualifiedMethodName>
을 선택합니다.
인라인을 선택하고 유지하여 원래 메서드 선언을 유지 <QualifiedMethodName>
합니다.
템플릿에서 새 C# 파일 또는 Visual Basic 파일을 만들 때는 EditorConfig 코드 스타일 설정을 따릅니다. 몇 가지 코드 스타일(파일 헤더, using 지시문 정렬, 네임스페이스 내외부에 using 지시문 배치)은 새 파일을 만들 때 자동으로 적용됩니다.
이제 함수 호출의 각 인수 앞에 리터럴, 캐스팅된 리터럴 및 개체 인스턴스화의 도구 영역을 삽입하는 인라인 매개 변수 이름 힌트에 대한 C# 및 Visual Basic 지원이 있습니다. 먼저 도구>옵션>텍스트 편집기>C# 또는 Basic>고급에서 이 옵션을 켜고 인라인 매개 변수 이름 힌트 표시(실험적)를 선택해야 합니다. 그러면 C# 또는 Visual Basic 파일에서 인라인 매개 변수 이름 힌트가 표시됩니다.
- 이제 새 기본 클래스 추출 리팩터링을 사용하여 선택한 클래스의 멤버를 새 기본 클래스로 추출할 수 있습니다. 클래스 이름 또는 강조 표시된 멤버에 커서를 놓습니다. (Ctrl+.)을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다. 새 기본 클래스까지 멤버를 풀하세요...를 선택합니다. 새 기본 클래스 추출 대화 상자가 열립니다. 여기서 기본 클래스의 이름과 기본 클래스를 배치해야 할 위치를 지정할 수 있습니다. 새 기본 클래스로 전송할 멤버를 선택하고 추상으로 지정 열에서 확인란을 선택하여 멤버를 추상으로 지정할 수 있습니다.
확인을 선택하면 새 기본 클래스가 해당 멤버와 함께 추가된 것을 볼 수 있습니다.
- 이제 C#에서 typeof(
<QualifiedType>
).Name의 인스턴스를 nameof(<QualifiedType>
)로 변환하고 Visual Basic에서 GetType(<QualifiedType>
).Name의 인스턴스를 NameOf(<QualifiedType>
)로 변환하는 코드 수정 사항이 있습니다. 형식 이름 대신 nameof를 사용하면 개체를 검색할 때 리플렉션이 관련되는 것을 방지할 수 있습니다. typeof(<QualifiedType>
).Name 안에 커서를 놓습니다. (Ctrl+.)을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다. 다음으로, 다음 옵션 중 하나를 선택합니다.
C#의 경우 typeof
를 nameof
로 변환을 선택합니다.
Visual Basic의 경우 GetType
을 NameOf
로 변환을 선택합니다.
- 코드 정리에 단일 파일이나 전체 솔루션에서 EditorConfig 파일에 설정된 서식 및 파일 헤더 기본 설정을 적용할 수 있는 새 구성 옵션이 있습니다.
- 이제 인수가 참조로 전달되지 않아야 하는
in
키워드를 제거하는 코드 수정 사항이 있습니다. 커서를 오류에 놓습니다. (Ctrl+.)을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다. ‘‘in’ 키워드 제거’를 선택합니다.
- 이제 새로운 C#9 패턴 연결자를 도입하는 리팩터링이 있습니다. 해당하는 경우
is
를 사용하도록==
을 변환하는 것과 같은 패턴 일치 제안과 함께 이 코드 수정 사항은 여러 패턴을 일치시키고 부정할 때and
,or
및not
패턴 연결자도 제안합니다. 문 내부에 커서를 놓습니다. (Ctrl+.)을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다. ‘패턴 일치 사용’을 선택합니다.
- 이제 추상이 아닌 클래스에서 추상 메서드를 작성하려고 할 때 클래스를 추상으로 설정하는 코드 수정 사항이 있습니다. 메서드 오류에 커서를 놓습니다. (Ctrl+.)을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다. ‘클래스를 ‘abstract’로 설정’을 선택합니다.
- 16.7 미리 보기 1에서는 DateTime 및 TimeSpan 문자열 리터럴에 IntelliSense 완성을 추가했습니다. 이 릴리스에서는 첫 번째 따옴표를 입력하면 이 완성 목록이 자동으로 나타납니다. 이전에는 이 완성 목록을 보려면 (Ctrl+’스페이스바’)를 입력해야 했습니다. DateTime 또는 TimeSpan 문자열 리터럴 내부에 커서를 놓고 첫 번째 큰따옴표를 입력합니다. 그러면 완성 옵션과 각 문자의 의미에 대한 설명이 표시됩니다. 날짜/시간 형식과 예시가 모두 제공됩니다.
- 이제 불필요한 pragma 비표시 오류(Suppression) 및 불필요한
SuppressMessageAttributes
를 제거하는 코드 수정 사항이 있습니다. pragma 경고 또는SuppressMessageAttribute
에 커서를 놓습니다. (Ctrl+.)을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다. ‘불필요한 비표시 오류(Suppression) 연산자 제거’를 선택합니다.
- 이제 ‘이름 바꾸기’ 및 ‘모든 참조 찾기’가 전역
SuppressMessageAttribute
비표시 오류(Suppression)의 대상 문자열 내 기호에 대한 참조를 인식합니다.
- Visual Basic은 매개 변수를 전달하는 여러 가지 방법 ByVal 및 ByRef를 제공해 왔으며, 오랫동안 ByVal은 선택 사항이었습니다. 이제 ByVal을 제거하여 이 방법이 불필요함을 나타내고, 불필요한 ByVal을 제거하는 코드 수정 사항을 제공합니다. ByVal 키워드에 커서를 놓습니다. (Ctrl+.)을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다. ‘ByVal’ keyword is unnecessary and can be removed(‘ByVal’ 키워드는 불필요하며 제거할 수 있음)를 선택합니다.
- 이제 .NET Framework, .NET Core 등의 여러 런타임에 대한 대화형 창 지원이 제공됩니다.
- 분석기 작성자가 추가 파일용 분석기를 만들 수 있는 새로운 RegisterAdditionalFileAction API가 있습니다.
테스트 탐색기의 테스트 세부 정보 창 래핑
많은 요청을 받았던 이 기능을 사용하면 텍스트 배치를 선택하거나 기본 텍스트 줄 맞춤을 그대로 유지할 수 있습니다. 텍스트 맞춤이 필요하지 않은 경우에도 래핑하여 테스트 실행의 피드백을 훨씬 더 쉽게 확인할 수 있으며 가로 스크롤 막대가 필요 없게 됩니다. 테스트 탐색기 설정 메뉴 또는 요약 창의 상황에 맞는 메뉴에서 이 기능을 사용하도록 설정할 수 있습니다.
XAML 도구(WPF, UWP 및 Xamarin.Forms)
XAML 바인딩 실패 진단 개선 사항
WPF, UWP, WinUI 및 Xamarin.Forms 프로젝트에서 작업하는 개발자는 종종 애플리케이션에서 XAML 데이터 바인딩 오류를 검색하고 해결해야 합니다. 이 시나리오에서 진단 도구를 개선하기 위해 Visual Studio 2019 버전 16.8 이상에 두 가지 새로운 환경을 추가했습니다.
- XAML 바인딩 실패 표시기 아이콘: 이제 WPF 및 UWP 프로젝트의 앱 내 도구 모음과 Xamarin.Forms를 비롯한 모든 XAML 프로젝트의 라이브 시각적 트리에 새 XAML 바인딩 실패 표시기 아이콘이 표시됩니다. 하나 이상의 바인딩 실패가 검색되면 이 아이콘에 빨간색 표시기가 표시됩니다. 또한 이 아이콘을 클릭하면 새 XAML 바인딩 실패 창으로 이동합니다.
- XAML 바인딩 실패 창: 이제 WPF, UWP, WinUI 및 Xamarin.Forms 프로젝트에 새 XAML 바인딩 실패 창을 사용할 수 있습니다. 이 새로운 전용 환경에서는 이전에 출력 창에서만 사용할 수 있었던 바인딩 실패 정보에 대한 풍부한 사용자 인터페이스를 제공합니다. 향상된 기능에는 실패를 정렬하고, 사용자 지정하고, 완벽하게 검색할 수 있는 열 집합으로 표시하는 기능이 포함됩니다. 또한 원래 원시 오류 정보를 모두 제공하고 오른쪽 클릭 메뉴 옵션으로 손쉽게 복사할 수 있는 동시에 특정 데이터 바인딩 템플릿 실패가 결합되어 발생할 수 있는 노이즈를 제한하기 위해 유사한 오류를 그룹화했습니다. (참고: Xamarin 버전 4.5.0.266-pre3 이상 필요)
- 바인딩 실패에 대한 원본으로 이동: WPF 팀과 협력하여 .NET 5(RC2 이상)에서 WPF를 대상으로 하는 고객을 위해 바인딩 실패의 원본으로 이동하는 기능을 사용하도록 설정했습니다.
XAML 핫 다시 로드
- Xamarin.Forms “변경 내용만” XAML 핫 다시 로드가 이제 UWP를 지원함: 이 릴리스에서는 UWP를 대상으로 할 때 Xamarin.Forms 프로젝트에서 새로운 변경 내용만 XAML 핫 다시 로드 지원을 사용할 수 있는, 요청이 많은 기능에 대한 지원을 출시하기 시작합니다. 이 기능은 아직 개발 중이며, XAML을 편집하는 동안 이제 실행 중인 앱의 업데이트가 트리거되고, 앱 내 도구 모음(요소 선택 등) 같은 다른 기능은 아직 완전히 구현되지 않았지만 향후 릴리스에 포함할 예정입니다.
- XAML 핫 다시 로드 설정을 “디버깅 > 핫 다시 로드”로 이동: 이 릴리스에서는 WPF, UWP, Xamarin.Forms의 XAML 핫 다시 로드 설정을 “디버깅 > 핫 다시 로드” 아래의 단일 설정 화면으로 통합했습니다. 또한 이 기능을 사용할 수 있는 경우를 완벽하게 제어할 수 있도록 플랫폼마다 XAML 핫 다시 로드를 사용하거나 사용하지 않도록 설정하는 기능을 처음으로 구현했습니다. (참고: 이 마이그레이션 중에는 설정이 변경되지 않으므로 모든 기존 선택 항목이 이 새 위치 바로 아래에서 계속 적용됩니다.)
XAML 코드 편집기:
- WinUI 3.0 IntelliSense 지원: 이 릴리스에서는 새로운 WinUI 3.0 미리 보기 3 이상 버전을 사용하여 앱을 빌드하는 개발자를 위해 더 나은 IntelliSense 지원을 사용하도록 설정했습니다. WinUI 3.0에 대한 자세한 내용은 설명서를 참조하세요. 피드백을 제공하려면 Windows UI XAML GitHub 리포지토리를 방문하세요. 참고: 업데이트된 도구 환경을 위해 16.9 미리 보기 1에서 최신 WinUI 3.0 미리 보기를 사용하는 것이 좋습니다.
- MVVM 지원 개선: XAML 문서를 작성할 때 d:DataContext를 설정하여 XAML 문서에 대한 정확한 바인딩 IntelliSense를 가져올 수 있습니다. 이전에는 데이터 컨텍스트 형식을 수동으로 지정하려면 번거로웠습니다. XAML 문서를 나간 다음에 원하는 뷰 모델 형식을 찾아 해당 네임스페이스 및 이름을 복사하여 d:DataContext 선언에 붙여넣어야 했기 때문입니다. 이 릴리스에서는 가능한 뷰 모델 후보를 제안하는 전구를 통해 d:DataContext를 신속하게 선언하도록 해주는 새 기능을 도입합니다.
확장성
- 참조되지 않은 NuGet 패키지의 도구 상자 채우기: 이 릴리스에서는 참조되지 않은 NuGet 패키지의 컨트롤로 도구 상자를 채울 때 TargetFrameworkMoniker 관련 VisualStudioToolsManifest.xml 파일에 대한 지원을 추가했습니다. 예를 들어 패키지는 .NET Core 3.1 및 .NET 5.0 프로젝트에 여러 컨트롤 세트를 노출할 수 있습니다.
Developer Community
- .NET 5를 대상으로 하는 WPF 애플리케이션을 컴파일할 수 없습니다.
- Xamarin.iOS용 명령줄에서 msbuild.exe를 사용하면 완료 시 중단됩니다.
- IntelliCode 2.2.733.31896을 사용하지 않도록 설정하면 TypeScript 3.x가 중단되고 .ts 파일 편집 시 CompositionFailedException이 발생합니다.
- TypeScript IntelliSense가 계속 중지됩니다.
- VS2019 C++ - 최적화로 잘못된 코드가 생성됩니다.
- 백그라운드 작업에서 “C/ C++ IntelliSense 작업 진행 중”이 끝없이 보고됩니다.
- WPF 디자이너 오류: 계산된 노드 경로가 잘못되었습니다. -- null->Window:Grid
- Visual Studio 16.8.0 미리 보기 4 프로세스가 사라집니다.
- 예외 설정 창을 통해 스크롤하면 VS에 크래시가 발생합니다.
- atlstdthunk.h의 USE_ATL_THUNK2 매크로가 정의되지 않은 상태일 수 없음
- Visual Studio Community 2019 16.7.x에서의 잦은 충돌
- NuGet 패키지 관리자로 이동 시 Visual Studio 충돌
- ASan에서 AVX2 이용 시 stack-buffer-overflow 보고
- Visual Studio 종료 불가 - 삭제된 개체에 액세스할 수 없음
- NullReferenceException 형식의 예외가 발생했습니다.
- Visual Basic 분석기 템플릿 문제
- .cs 파일에 입력하는 동안 VS 충돌
- C++ Code Analysis(VS 2019 업데이트 8 미리 보기 3)의 새로운 변이 검사가 시작되지/작동하지 않음
- 외부 종속성 파일이 있는 솔루션을 열면 해당 외부 종속성 파일 탭에 “...에 오류가 발생했습니다.”가 표시됨
- Visual Studio 16.7로 업그레이드한 후 Windows SDK 8.1 실패를 사용하여 C++ 빌드
- ARM64 C++: 16.4 -> 16.5 이상 재발.
- csproj가 디스크에서 변경되었습니다. 편집기를 닫았다가 다시 엽니다.
- ServiceHub.Host.CLR.x64의 작동이 중지됨
- ASAN x64-CMake가 지원되지 않는 것 같음
- 최대 병렬 컴파일 작업이 사용 가능한 프로세서 수로 설정되면 VS2019 WSL C++ 컴파일이 간헐적으로 실패함
- 프로젝트를 다시 빌드하면 전체 출력 폴더가 제거됨(원격 컴파일)
- VS2019는 CMakeFiles.txt 또는 CMakeSettings.json을 누를 때마다 여전히 CMakeBuild 디렉터리를 초기화함
- IntelliCodeCppPackage를 로드하지 못함
- "/mnt/" 접두사로 인해 CMake 프로젝트 WSL 구성에서 빌드 오류가 발생함
- CMake: CMakeSettings.json에서 생성된 환경 변수는 VS 16.7로 업그레이드한 후 더 이상 확장되지 않음
- 스키마 비교는 DACPAC를 프로젝트 소스 코드와 비교할 때 SQLCMD 변수를 평가하지 않음
- 빌드 및 디버그 분리 시 .o 파일을 배포해서는 안 됨
- 파티션이 있는 모듈이 컴파일되지 않음
- 탭으로 전환할 때 “작업 중” 메시지 받음
- Visual Studio S2019 디버거가 이름이 같은 여러 변수로 인해 혼동됨
- 대괄호 뒤에 문자열 리터럴 구분 기호가 강조 표시됨
- 생성 가능한 기본값이 아닌 promise_type을 사용하여 코루틴을 정의할 수 없음
- C/C++ IntelliSense: C 파일에서 산술 연산자 뒤에 var.을 입력한 후에 C 파일에서 산술 연산자 이후
- 다른 파일에서 코드를 변경할 때 CodeLens 참조가 업데이트되지 않음
- 정의로 이동이 람다 인수 클래스 대신 std::function 생성자로 이동함
- HLSL 셰이더 컴파일러가 헤더 파일의 출력 디렉터리를 만들지 못함
- 예기치 않은 오류 C2027: /permissive-를 포함한 템플릿을 사용할 때 정의되지 않은 형식 사용
- D9025: ‘/sdl-’을 ‘/GS-’로 재정의
- constexpr이 포인터에 대한 참조에 제대로 적용되지 않음
- 문서는 이미 프로젝트 또는 솔루션으로 열려 있으며 현재 편집기에서 열 수 없습니다.
- 16.7에서 삭제된 스위치 식의 적용 범위
- 사용하지 않도록 설정한 경우에도 C5045 경고 발생
- Xamarin.Forms가 iOS용 보관을 만들 수 없습니다!
- 16.7.0 미리 보기 1에 DrawImage()에 대한 CImage::Draw()의 모호한 호출이 있음
- 고정된 작업 표시줄 아이콘을 사용하여 “폴더 열기” 프로젝트를 로드할 때 보기가 누락됨
- C++: 컴파일러가 잘못된 오버로드 후보를 선택함
- CodeFix를 사용하여 새 VB VSIX 프로젝트를 만들 수 없음
- VS2019 찾기 결과가 글꼴/색 설정을 사용하지 않음
- 대규모 솔루션에서 .editorconfig 파일을 편집하면 편집기가 매우 느려지고, CPU와 RAM 사용량이 많아지며, 때때로 크래시가 발생함
- Ctrl+F 검색 결과가 텍스트로 표시되지만, 새 구조적 검색 결과 창에서 결과를 확인하고 싶음
- 게시 단추가 표시되지 않음
- 저장 기능이 저장을 수행하지 않음
- 60자보다 긴 솔루션/프로젝트 이름이 허용되지 않습니다.
- ‘사용할 수 있는 Visual Studio Enterprise 2019의 새 라이선스가 있습니다.’ 메시지
- 다크 모드의 Git 보기가 올바르게 표시되지 않습니다.
- Visual Studio 2019가 백그라운드에서 코드 분석을 수행하는 동안 크래시되고 파일을 복구하지 않습니다.
- 2단계 인증을 사용하여 Apple Developer 계정을 추가하지 못했습니다.
- noexcept의 fold 식이 구문 오류를 생성합니다.
- StreamPipeReader.AdvanceTo의 RPC 예외에 따른 골드 막대: 완료할 읽기 작업이 없습니다.
- 디자인 패널을 사용하여 열을 편집할 때 SQL Server 프로젝트의 작동이 중단됩니다.
- Visual Studio 2019 미리 보기: ssh+git:// 리포지토리에서 자격 증명을 요청하지 않지만, 대신 오류를 보고합니다.
- Std::enable_if가 오버로드 세트에서 변환 연산자를 제거하지 않습니다.
- 끌어오기 요청 페이지가 손상되었습니다.
- Enable_if_t SFINAE 문제
- Std::condition_variable::wait_for(0)가 잠금을 잠금 해제하지 않습니다.
- 컴파일러가 임시 주소 사용을 catch하지 않습니다.
- 기호 파일과 함께 클래스 이름을 바꿀 때 NullPointerException이 throw됩니다.
알려진 문제
아래 링크에 따라 Visual Studio 2019에서 알려진 미해결 문제 및 해결 방법을 모두 확인하세요.
피드백 및 제안
많은 의견 부탁드립니다! 문제가 있으면 설치 관리자나 Visual Studio IDE 자체의 오른쪽 위에서 문제 보고 옵션을 통해 알려주세요. 아이콘은 오른쪽 위 모서리에 있습니다. Visual Studio 개발자 커뮤니티에서 제품에 대해 제안하거나 문제를 추적하고, 질문하고 대답을 찾고 새로운 기능을 제안할 수 있습니다. 라이브 채팅 지원을 통해 무료 설치 도움말을 가져올 수도 있습니다.
Blogs
개발자 도구 블로그 사이트에서 사용 가능한 인사이트 및 권장 사항을 활용하여 모든 새 릴리스에 대한 최신 정보와 다양한 기능에 대한 심층적인 게시물을 확인하세요.
Visual Studio 2019 릴리스 정보 기록
이전 버전의 Visual Studio 2019와 관련된 자세한 내용은 Visual Studio 2019 릴리스 정보 기록 페이지를 참조하세요.