Visual Studio 2019 버전 16.10 릴리스 정보
개발자 커뮤니티 | 시스템 요구 사항 | 호환성 | 배포 가능 코드 | 릴리스 기록 | 사용 조건 | 블로그 Visual Studio Docs | 의 새로운 기능
참고 항목
이것은 최신 버전의 Visual Studio가 아닙니다. 최신 릴리스를 다운로드하려면 Visual Studio 사이트를 방문하세요.
Visual Studio 2019 버전 16.10의 새로운 기능
지원 기간
이 버전은 이제 지원되지 않습니다. Visual Studio 지원에 대한 자세한 내용은 Visual Studio 2019에 대한 지원 정책을 검토하세요.
최신 버전의 릴리스 정보를 참조하거나 Visual Studio 사이트를 방문하여 지원되는 최신 버전의 Visual Studio 2019를 다운로드합니다.
Visual Studio 2019 버전 16.10 릴리스
- 2021년 7월 20일 — Visual Studio 2019 버전 16.10.4
- 2021년 6월 29일 — Visual Studio 2019 버전 16.10.3
- 2021년 6월 15일 — Visual Studio 2019 버전 16.10.2
- 2021년 6월 8일 — Visual Studio 2019 버전 16.10.1
- 2021년 5월 25일 — Visual Studio 2019 버전 16.10.0
Visual Studio 2019 보관된 릴리스 정보
- Visual Studio 2019 버전 16.9 릴리스 정보
- Visual Studio 2019 버전 16.8 릴리스 정보
- 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.10 및 v16.11 미리 보기 1 오늘 출시
- Visual Studio에서 Git을 사용하여 생산성 향상
- 지금 사용할 수 있습니다! Visual Studio 2019 v16.9 및 v16.10 미리 보기 1
- 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.10.5
Visual Studio 2019 버전 16.10.5 릴리스의 새로운 기능 요약
이 Visual Studio 2019 버전은 WSUS(Windows Software Update Service)를 통해서만 사용할 수 있습니다.
이번 릴리스에서 해결된 주요 문제
- 이제 iOS Remoted Simulator가 Xcode 12.4 또는 12.5가 설치된 페이링된 Mac 디바이스와 제대로 작동합니다. Xcode 12.4 이상이 설치된 Mac 디바이스에 페어링된 경우 다음 Xcode 시뮬레이터 기능을 사용할 수 없습니다.
- 시뮬레이트된 메모리 경고
- 시뮬레이트된 위치
보안 권고 알림
CVE-2021-26423 .NET Core 서비스 거부 취약성
WebSocket 엔드포인트를 제공하는 .NET (Core) 서버 애플리케이션이 단일 WebSocket 프레임을 읽으려고 시도하는 동안 끊임없이 반복되는 서비스 거부 취약성이 발생합니다.
CVE-2021-34485 .NET Core 정보 공개 취약성
Linux와 macOS에서 전역 읽기 권한을 사용하여 주문형 덤프가 생성되고 크래시 덤프를 수집하기 위해 도구에서 덤프가 생성될 때 정보 공개 취약성이 발생합니다.
CVE-2021-34532 ASP.NET Core 정보 공개 취약성
JWT 토큰을 구문 분석할 수 없는 경우 JWT 토큰이 로그되는 위치에 정보 공개 취약성이 발생합니다.
Visual Studio 2019 버전 16.10.4
Visual Studio 2019 버전 16.10.4 릴리스의 새로운 기능 요약
이번 릴리스에서 해결된 주요 문제
- memset에서 허용되지 않는 레지스터 사용을 제거합니다.
- bitwise-not 연산자를 포함하는 복잡한 중첩 식과 관련된 codegen 버그를 수정했습니다.
- VS Graphics Analyzer에 대한 셰이더 디버깅 수정
- 클래스 내 템플릿 특수화에서 정적 데이터 멤버를 처리할 때 발생하는 IntelliSense 크래시 문제를 해결했습니다.
- X64 VC 재배포 가능 패키지가 /installer /passive 스위치를 통해 실행할 때 런타임 파일을 더 이상 제거하지 않습니다.
- “포함 디렉터리” 앞에 추가할 때 포함 검색 순서가 올바르지 않을 수 있는 문제를 해결했습니다.
- VARIANT의 오용에서 버그를 찾는 검사기 확장 중 하나로 인해 발생하는 성능 문제 및 가양성 문제를 해결했습니다.
- 열거형 값을 인덱스로 잘못 사용하는 버그를 찾는 검사기 확장 중 하나로 인해 발생하는 성능 문제를 해결했습니다.
- 협업 세션 참가자를 위한 주요 코드 편집 기능(코드 완성, 구문 강조 표시, 오류 등)을 복원하는 Live Share 언어 서비스 수정 사항을 소개합니다.
- 동시성 분석기는 자동 잠금 패턴으로 더 이상 잘못된 경고 C26110(잠금 획득 실패)을 생성하지 않아야 합니다.
- C# 및 Visual Basic 컴파일러에서 InternalsVisibleTo와 관련된 크래시가 다른 어셈블리 수준 특성과 충돌하는 문제가 해결되었습니다.
- WPF NetCore 앱 및 Project Reunion 앱과 같은 Windows 애플리케이션 패키징 프로젝트로 해당 프로젝트를 패키징하는 고객이 겪는 문제를 해결했습니다.
오류 자산 파일 ‘...\obj\wappublish\win10-x86\project.assets.json’을 찾을 수 없습니다. NuGet 패키지 복원을 실행하여 다음 파일을 생성하세요. App4(패키지) C:\Program Files\dotnet\sdk\5.0.302\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets 242
이 문제는 패키징 프로젝트가 win-$(configuration)에서 찾아야 할 때 잘못된 디렉터리 win10-$(configuration)에서 project.assets.json 파일을 찾기 때문에 발생했습니다.
Developer Community
- Compile erros for external headers(외부 헤더에 대한 컴파일 오류)
- Incorrect lock warnings by analyzer C26110(분석기 C26110의 잘못된 잠금 경고)
- Internal compiler error occurs after upgrade to v16.10 Visual Studio when an assembly is declared in the InternalsVisibleTo attribute(InternalsVisibleTo 특성에 어셈블리가 선언될 때 v16.10 Visual Studio로 업그레이드한 후 내부 컴파일러 오류가 발생함)
- Vcredist_x64.exe (14.29.30038.0) shipped with Visual Studio 16.10.2 incorrectly removes msvcp140.dll after second install using /passive switch(Visual Studio 16.10.2와 함께 제공되는Vcredist_x64.exe(14.29.30038.0)가 /passive 스위치를 사용하여 두 번째 설치 후 msvcp140.dll을 잘못 제거함)
- VS 16.10.1 code generation issue (x86 only)(VS 16.10.1 코드 생성 문제(x86만 해당))
- Address Sanitizer should allow triggering of crash dumps without the use of an environment variable(주소 삭제기가 환경 변수를 사용하지 않고 크래시 덤프의 트리거를 허용해야 함)
- Graphics Analyzer stopped working when click the triangle after Vertex Shader to start shader debugging(꼭짓점 셰이더 뒤의 삼각형을 클릭하여 셰이더 디버깅을 시작할 때 그래픽 분석기 작동이 중지됨)
- Vsftest : Testing NMI(Vsftest: NMI 테스트)
- Project Reunion Publish problem(Project Reunion 게시 문제)
- The tool in LKG12 WAVE2 needs updates before it ships(LKG12 WAVE2의 도구는 제공되기 전에 업데이트가 필요함)
- Unable to package a WinUI 3 App into MSIX(WinUI 3 앱을 MSIX에 패키지할 수 없음)
- Graphics Debugger - Shader-Debugging broken after update to 16.10.3?(그래픽 디버거 - 16.10.3으로 업데이트한 후 세이버 디버깅이 중단되나요?)
- Unable to package a WinUI 3 App with Project Reunion 0.8(Project Reunion 0.8을 사용하여 WinUI 3 앱을 패키지할 수 없음)
Visual Studio 2019 버전 16.10.3
‘릴리스 날짜: 2021년 6월 29일’
Visual Studio 2019 버전 16.10.3 릴리스의 새로운 기능 요약
이번 릴리스에서 해결된 주요 문제
- 모듈에서 가져온 기호에 대한 정의로 이동이 때때로 기호 정의가 아닌 모듈 파일의 시작 지점으로 이동하는 문제를 해결합니다.
- 텍스트 상자에 대한 테두리 색의 광도 비율이 3:1 미만이므로 시각 장애가 있는 개발자가 화면에서 포커스를 식별하는 데 어려움을 겪는 문제를 해결했습니다.
- 데이터베이스 프로젝트: 솔루션 탐색기의 파일을 열린 파일로 끌면 파일 시스템에서 파일이 삭제되는 문제를 해결했습니다.
- 데이터베이스 프로젝트에서 merge 문을 사용하면 빌드 오류가 발생하는 문제를 해결했습니다.
- 설치된 확장을 보고할 때 더 이상 디스크의 경로를 전송하지 않습니다.
- 빠른 시작 창을 닫을 때 Visual Studio에 크래시가 발생할 수 있는 문제를 해결합니다.
- 도구 창을 표시할 경우 때때로 VS에 크래시가 발생하는 문제를 해결합니다.
- 관련 없는 G++/GCC 생성 기호가 애플리케이션에 로드될 때 사용자 코드의 C++ 편집하며 계속하기를 수정합니다.
- iAd 프레임워크에서 프라이빗 선택기 사용을 수정합니다.
- XAML 디자이너에서 발생하는 오류로 인해 VS에 크래시가 발생하는 문제가 해결했습니다.
- .netcoreapp 프로젝트를 참조하는 Windows 애플리케이션 패키징 프로젝트에서 .msixbundle을 생성하는 문제를 해결했습니다.
- 프로젝트가 최신이고 수정이 필요하지 않은 경우에도 WAP 프로젝트에 대한 빠른 최신 검사를 수행하지 못하고 해당 프로젝트를 건너뛰지 않고 빌드하게 되어 IDE에서 추가로 증분 빌드 시간이 증가하는 문제를 해결합니다.
Developer Community
[C++, IntelliSense, 16.7.7]
도구 설명에서 멤버 함수 포인터의 크기가 잘못됨- SQL Server 프로젝트에서 작업할 때 16.9.2 동결
- C++20 IntelliSense가 range-v3 버전 0.10.0에서 잘못된 오류를 제공함
- 모듈의 Intellisense 문제
- Xamarin Forms iOS SkiaSharp DirectoryNotFoundException
- 버전 16.10.0 릴리스 편집기 문제 - 더 이상 요소 콤보 상자를 사용하여 코드를 탐색할 수 없음
- C++ 20 모듈: “선언으로 이동”을 클릭할 때 커서 점프 위치가 잘못됨
- v16.10에서 “계정을 추가할 때 디바이스 코드 흐름 사용” 옵션이 없음
- VS 2019 16.10.0 PackageInspectionFailed: 번들에서 Info.plist를 로드하지 못함. 해당 파일 또는 디렉터리가 없음
- 앱 스토어 패키지에 32비트 파일 포함
- 16.10.2가 Mac에 연결되지 않음
- vsftest: NMI 테스트
Visual Studio 2019 버전 16.10.2
‘릴리스 날짜: 2021년 6월 15일’
Visual Studio 2019 버전 16.10.2 릴리스의 새로운 기능 요약
이번 릴리스에서 해결된 주요 문제
- 코드 분석의 동시성 검사가 더 스마트해졌습니다. 복잡한 제어 흐름으로 속이기 더 어렵습니다.
- 이 수정은 외부 헤더 분석을 건너뛰고 외부 헤더에서 경고를 표시하지 않음으로써 외부 헤더에 대한 동작을 복원합니다.
- 사용자에게 불완전한 IntelliSense가 표시되거나 성능이 저하될 수도 있는 .aspx/ascx 파일을 수정했습니다.
- 대규모 프로젝트에서 작업할 때 발생하는 Unity CodeLens 공급자의 스케일링 성능 문제를 해결했습니다.
- Azure 서비스 인증 옵션 페이지에서 번역된 문자열을 복구했습니다.
- Resharper 확장을 사용할 때 발생하는 일시적인 시각적 코드 표시 문제를 해결했습니다.
- 특정 도구 창, 편집기 및 디자이너가 너무 작게 렌더링되어 콘텐츠를 표시할 수 없는 문제를 해결했습니다.
- 앱을 실행하거나 앱 스토어에 게시하려고 할 때 Xamarin iOS 누락된 앱 아이콘 문제를 해결합니다.
- AOT+LLVM을 통해 프로젝트를 빌드하는 데 더 이상 XA3001 오류로 실패하지 않습니다.
- Visual Studio 2019 버전 16.10으로 업그레이드한 후 특정 상황에서 “지정된 리소스 이름이 이미지 파일에 없습니다.” 오류 메시지와 함께 UWP 앱이 게시되지 않을 수 있는 문제를 이제 해결했습니다.
- 디바이스 구성이 변경되면 Visual Studio 2019가 응답을 중지하는 문제를 해결했습니다.
- MSBuild의 세 가지 문제를 해결합니다.
- Azure DevOps에서 빌드할 때 MSB4017 오류를 방지합니다.
- $(
[MSBuild]
::MakeRelative())가 다시 입력에 후행 슬래시를 유지합니다. - 후행 ** 패턴이 있는 GLOB 제외는 다음이 없는 파일을 다시 제외합니다. 문자
Developer Community
- Developer Community에 이 릴리스에서 제공하는 모든 항목을 보여 주는 전체 목록이 있습니다.
- ClickOnce는 프로젝트를 게시하지 않습니다.
- SelfContained=true이고 프로젝트가 다른 프로젝트를 참조할 때 .NET 5.0용 ClickOnce 게시가 실패합니다.
- ClickOnce does not work again.(ClickOnce가 다시 작동하지 않습니다.)
- ClickOnce 게시: 메타데이터 파일을 찾을 수 없음(잘못된 디렉터리가 사용됨), 게시가 CLI에서 작동함
- 게시하는 동안 ClickOnce가 잘못된 폴더에서 라이브러리를 수집하려고 합니다. (.Net 5).
- Visual Studio 2019 버전 16.10.0 빌드를 업데이트한 후 ClickOnce가 작동하지 않습니다.
- EWDK 사용 시 16.10.0의 빌드 재발
- 게시에서 오류가 발생했습니다.
Visual Studio 2019 버전 16.10.1
‘릴리스 날짜: 2021년 6월 8일’
Visual Studio 2019 버전 16.10.1 릴리스의 새로운 기능 요약
이번 릴리스에서 해결된 주요 문제
- IntelliSense 컴파일러와 크래시가 발생하는 문제를 해결했습니다.
- 솔루션에서 테스트 탐색기가 열려 있는 경우 Visual Studio 2019 인스턴스가 닫히지 않도록 하는 문제를 해결했습니다.
- 개발자가 명령줄에서 부분 솔루션을 빌드할 때 오류를 수정했습니다.
- .NET Core 애플리케이션에 대한 ClickOnce 게시에서 오류를 수정했습니다.
- 호출 스택 창이 Visual Studio 2019에 크래시가 발생할 수 있는 문제를 해결합니다.
- iOS 바인딩 프로젝트를 빌드할 때 “메타데이터 파일 ‘***\bin\Debug\NativeLibrary.dll’을 찾을 수 없음” 빌드 오류를 해결합니다.
보안 권고 알림
CVE-2021-31957 ASP.NET 서비스 거부 취약성
ASP.NET Core가 클라이언트 연결 해제를 잘못 처리할 때 서비스 거부 취약성이 발생합니다.
Developer Community
Visual Studio 2019 버전 16.10.0
‘릴리스 날짜: 2021년 5월 25일’
Visual Studio 2019 버전 16.10.0 릴리스의 새로운 기능 요약
C++
- 이제
/std:c++latest
스위치에서 모든 C++20 기능을 사용할 수 있습니다. MSVC의 C++20 표준 구현(현재 ISO에서 게시됨)은 기능이 완벽하게 제공되지만, 일부 주요 C++20 라이브러리 기능은 예정된 오류 보고서에 의해 수정될(ISO C++20 버그 수정) 예정이며 ABI 호환 방식으로 변경할 수도 있습니다. 자세한 내용은 Microsoft/STL 문제 #1814를 참조하세요.- 16.10에 C++ 20 직접 함수 및 constinit 지원을 추가했습니다.
<chrono>
의 마지막 부분: 새 시계, 윤초, 표준 시간대 및 구문 분석- 텍스트 서식을 위한
<format>
구현
/openmp:llvm
은 이제 x64 외에 x86 및 ARM64에서도 사용할 수 있습니다.- 포함 디렉터리는 이제 사용자 지정된 컴파일 경고 수준 및 코드 분석 설정과 함께 외부로 지정할 수 있습니다.
- 이전 언어 모드에서 C++20 스타일 코루틴을 사용하도록
/await:strict
스위치를 추가했습니다. - 이제
std::coroutine_handle<T>
의 디버거 시각화에는 원래 코루틴 함수 이름 및 시그니처와 현재 일시 중단 지점이 표시됩니다. - CMakePresets 지원을 추가했습니다.
- 이제 Visual Studio에서 새 원격 연결을 추가할 때 서버에서 제공하는 호스트 키 지문을 수락하거나 거부해야 합니다.
- 경고를 위해 외부로 처리되어야 하는 헤더를 지정하기 위해 MSVC에
/external
스위치를 추가했습니다.
- 작성 파일에서 시작할 서비스를 구성하는 시작 프로필을 만드는 기능입니다.
- 이미지에 태그를 추가하는 기능입니다.
- 컨테이너에 대한 볼륨 탭을 추가했습니다.
- 컨테이너에 대한 레이블 탭을 추가했습니다.
- 이미지에 대한 레이블 탭을 추가했습니다.
- 이제 컨테이너는 작성 프로젝트별로 그룹화됩니다.
편집기
- 덜 복잡한 환경을 원하는 사용자의 경우 Visual Studio 검색(Ctrl+Q)에서 “줄 간격”을 검색하여 줄 간격을 수정할 수 있습니다. 옵션은 텍스트 편집기/일반 아래에 있습니다.
- 파일에서 찾기 및 모든 참조 찾기에는 결과를 유지하기 위한 컨트롤이 있습니다. 커뮤니티의 피드백에 따라 기본적으로 “결과 유지” 옵션을 설정/해제하는 옵션을 추가했습니다. Visual Studio 검색(Ctrl+Q)에서 “기본적으로 검색 결과 유지”를 검색하여 이 옵션을 찾을 수 있습니다. 이 옵션은 환경\찾기 및 바꾸기 아래에 있습니다. 사용자는 현재 파일에서 찾기에 대한 5개의 결과와 모든 참조 찾기에 대한 5개의 추가 결과로 제한됩니다.
- 파일에서 찾기의 새 옵션을 사용하면 추가 검색을 실행하고 해당 결과를 이전 검색에 추가할 수 있습니다.
편집기 확장성
- IntraTextAdornmentTags를 관리하는 코드의 동작이 변경되었습니다. 이 변경으로 다른 ITagger와 마찬가지로 기본 태그가 변경될 때 태그 변경 이벤트를 생성해야 합니다. 그렇지 않으면 태그가 전혀 업데이트되지 않을 수 있습니다.
- 메모리 덤프의 진단 분석에 이제 관리형 Linux Core 덤프가 포함됩니다.
- 딥 링크를 사용하여 웹으로 이동하여 새 끌어오기 요청을 만들고 Git 메뉴에서 GitHub 또는 Azure DevOps에 대한 PR을 봅니다.
- 분기 선택기에서 단일 선택으로 로컬 및 원격 분기를 체크 아웃합니다.
- 리포지토리 선택기에서 바로 가기 메뉴를 통해 항목을 제거합니다.
- Git > 설정을 통해 Git 리포지토리를 열 때 솔루션의 자동 로드를 설정합니다.
- Git > 설정을 통해 Git 리포지토리 창에서 분기를 체크 아웃하려면 두 번 클릭 동작을 토글합니다.
- Git 변경 내용 창 오버플로 메뉴에서 여러 원격으로 분기를 동기화(끌어온 후 푸시)합니다.
- 오버플로 메뉴의 Git 변경 내용 창 도구 모음 작업(페치, 풀, 푸시, 동기화)을 사용자 지정합니다.
- Git 변경 내용 창 오버플로 메뉴의 브라우저에서 리포지토리를 엽니다.
- 상태 표시줄에서 로컬 및 원격 분기를 검색하고 체크 아웃합니다.
- 상태 표시줄에서 로컬 Git 리포지토리를 검색하고 전환합니다.
- Visual Studio를 시작할 때 Git 메뉴의 로컬 리포지토리 목록이 로드되지 않는 문제를 해결했습니다.
- 리포지토리를 열 때 중첩 프로젝트 하위 리포지토리를 로컬 리포지토리 목록에 추가합니다.
- Git > 설정을 통해 리포지토리를 전환할 때 솔루션을 열어 둡니다.
- Git > 설정을 통해 리포지토리를 열 때 폴더 열기를 해제합니다.
- 상태 표시줄의 푸시되지 않은 커밋 단추와 Git 메뉴의 동기화 명령에서 분기를 원격과 동기화합니다.
- 들어오는 커밋이 없더라도 Git 리포지토리 창 기록 창에서 페치하고 풀합니다.
- Git 리포지토리 창에 포함된 파일 변경 내용 비교 및 커밋 정보를 확인합니다.
- Azure DevOps Git 리포지토리를 열 때 자동으로 다시 연결하거나 초기 Azure DevOps 연결을 설정하라는 프롬프트를 표시합니다.
- 표시되는 분기 이름으로 병합하고 다시 지정하여 혼동되는 원본/대상 용어를 대체합니다.
- 솔루션 탐색기의 소스 제어 문자 모양에 대한 성능과 안정성을 향상했습니다.
- Git 리포지토리 창에서 들어오는/나가는 섹션을 비어 있는 경우에도 유지합니다.
- Git 변경 내용 창의 여러 원격 작업에 대한 페치/끌어오기/푸시 드롭다운을 단일 작업 메뉴로 통합했습니다.
- 메서드 호출의 인수 완료
- EditorConfig UI
- 시각적으로 상속 체인 검사 및 탐색
- ‘캐스트, 인덱서 및 연산자를 위한 IntelliSense 완성’
- 소스 생성기에 대한 디버거 지원
- Visual Basic에 대한 코드 정리 지원
- EnC(편집하며 계속하기) 업데이트
- 사용하지 않는 참조 제거
- 스마트 구분선
- LINQ 식 간소화 리팩터링
- 열거형 값에 대한 IntelliSense 완성
- IntelliSense 완성 모드 설정
- 새 줄의 코드 스타일 기본 설정
- 소스 생성기에 대한 모든 참조 찾기 지원
- IntelliSense 완성 업데이트
- 제네릭 구성 요소에 대한 정의 지원으로 이동
- 탭 및 공백을 위한 새 코드 스타일 구성
- 도구 옵션의 Razor 텍스트 편집기를 이제 Razor(ASP.NET Core)라고 합니다.
- Console.Writeline이 이제 테스트 탐색기에 표시됩니다.
- 이제 테스트 출력에서 태그를 유지할 수 있으므로 하이퍼링크와 스택 추적 링크를 로그 파일에서도 탐색할 수 있습니다.
- 출력이 300자를 초과하거나 테스트 결과에 10개가 넘는 파일이 첨부된 경우 단일 테스트 결과에 대한 로그 파일이 생성됩니다.
- 이제 미리 보기에서 로그 파일을 열 수 있으므로 탭을 쉽게 관리할 수 있습니다.
- 로그 파일 및 테스트 탐색기에서 커서 탐색을 위한 Ctrl PgUp/PgDn과 선택을 위한 Shift+Ctrl PgUp/PgDn을 지원합니다.
- 이제 로그 파일 편집기에서 IVsTextView 인터페이스를 사용하므로 매우 큰 텍스트 파일을 열 수 있습니다. 따라서 사용자가 잘린 로그를
Copy All
한 후 메모장과 같은 별도의 편집기에서 열 필요가 없습니다. MSTest의 경우 이제 데이터 행별로 별도의 로그 파일을 포함하는 대신 모든 출력을 집계하는 단일 로그 파일도 포함합니다. - 이제 Ubuntu 및 Alpine의 명령줄에서 dotnet cli를 사용하여 플랫폼 간 코드 검사를 가져올 수 있습니다. 이러한 플랫폼을 대상으로 하는 머신에서 코드 검사를 가져오는 데 관심이 있는 사용자는 이제 Windows에서 일반적으로 사용하는 것과 동일한 코드 검사 모음 명령을 추가할 수 있습니다. dotnet 테스트에 대한 추가 설명서를 참조하세요.
- 이제 테스트탐색기의 모두 축소 단추 옆에 모두 확장 단추가 있습니다. 이 명령은 바로 가기 키(Ctrl+A, Ctrl+ 오른쪽 화살표)를 통해 사용할 수 있었지만 추가 피드백은 단추를 추가하는 것이 추가 UI에 대한 가치가 있음을 나타냈습니다. 언제든지 https://developercommunity.visualstudio.com/을 통해 의견을 보내 주셔서 감사합니다.
- 또한 테스트 탐색기에 “부실”이 표시되는 방법이 약간 변경되었습니다. “부실”은 테스트 결과를 회색으로 표시하거나 “흐리게” 표시하여 결과가 최신 테스트 실행에서 나오지 않았음을 나타냅니다. 결과가 가장 최근의 테스트 실행의 일부가 아닌 경우 부실로 표시됩니다. 이전에는 새 테스트 검색(또는 다시 검색된 이전 테스트 결과도 포함)이 단색 아이콘으로 표시되었습니다. 이로 인해 일부 ‘실행되지 않음’ 테스트가 흐리게 표시되고 다른 테스트는 그렇지 않은 이유에 대해 약간 혼동하게 되었습니다. 이렇게 변경함으로써 부실의 복잡성이 줄어듭니다.
- 지속형 테스트 결과 기능(버전 16.2에 추가됨)을 통해 Visual Studio를 닫았다가 다시 연 경우에도 마지막 테스트 실행의 테스트 결과를 볼 수 있습니다. 이렇게 하면 사용자가 중단한 위치를 기억할 수 있으며 다른 테스트를 실행할 필요 없이 더 많은 컨텍스트가 제공됩니다. 또한 항상 부실로 표시되도록 지속형 결과의 동작을 수정합니다. 이렇게 하면 현재 Visual Studio 세션 중에 실행된 테스트 실행에서 나온 것이 아님을 더 잘 나타냅니다.
웹 도구:
- Azure AD 프로비저닝을 위해 API V2로 전환
- 연결된 서비스로서의 Azure App Configuration이 이제 동적 구성을 지원함
Windows 애플리케이션 패키징 프로젝트 종속성 트리
- WAP 프로젝트에 ‘종속성 트리’를 추가했습니다.
- Xamarin.Forms 고객을 위한 XAML IntelliSense 및 XAML 핫 다시 로드 개선
- WPF에서 선택된 ItemsControls에 대한 XAML 샘플 데이터 소개
- 일반적으로 편집된 속성에 빠르게 액세스할 수 있도록 새 전구를 추가함
- XAML 편집기에 뷰 모델을 만드는 데 도움이 되는 새 전구를 추가함
- Service Fabric 애플리케이션에 StartupServices.xml 도입
Visual Studio 2019 버전 16.10의 새로운 기능에 대한 자세한 정보
Docker 도구
컨테이너 도구 창
이 릴리스에서는 컨테이너 및 이미지를 쉽게 확인하고 조작할 수 있도록 컨테이너 도구 창에 기능을 추가했습니다. 보기 > 다른 창 > 컨테이너로 이동하여 새로운 기능을 사용해 보세요.
- 이제 컨테이너는 작성 프로젝트별로 그룹화됩니다. 그러면 애플리케이션을 나타내는 컨테이너를 간단히 알 수 있습니다. 또한 개발 중에 사용 중인 레이블을 쉽게 알 수 있도록 컨테이너에 레이블 탭을 추가했습니다.
- 또한 이미지에 대한 레이블을 추가했습니다.
- 새 볼륨 탭을 사용하여 실행 중인 컨테이너의 볼륨을 확인하고 Visual Studio에서 파일을 열 수도 있습니다.
- 이제 컨테이너 도구 창에서 이미지에 태그를 지정할 수 있는 기능을 지원합니다. 이미지에서 이미지를 마우스 오른쪽 단추로 클릭하고 태그를 선택합니다.
Compose
- 이제 Visual Studio의 Docker Compose 도구를 사용하여 작성 파일에 정의된 서비스 조합을 실행할 수 있습니다. 디버그 드롭다운을 열거나 docker 작성 프로젝트를 마우스 오른쪽 단추로 클릭하고 Docker Compose 시작 설정 관리를 선택하여 시작합니다.
Git 생산성
- Visual Studio를 사용하는 동안 끌어오기 요청을 보다 쉽게 만들 수 있도록 하기 위해 PR을 만들거나 리포지토리의 PR 목록을 볼 수 있는 웹 페이지에 대한 딥 링크 바로 가기인 메뉴 항목을 추가했습니다. 이 메뉴는 리포지토리가 GitHub에 있는지 Azure DevOps에 있는지에 따라 동적으로 작동합니다.
- 상태 표시줄의 분기 선택기와 Git 변경 창에서는 이제 분기를 단일 선택하여 로컬 또는 원격 분기를 체크 아웃합니다. 바로 가기 메뉴에서 추가 작업을 찾을 수 있습니다.
- 상태 표시줄의 새 리포지토리 선택기에는 마우스 오른쪽 단추로 클릭할 때 목록에서 항목을 제거할 수 있는 바로 가기 메뉴가 있습니다.
리포지토리 선택기 또는 Git 메뉴 로컬 리포지토리 목록을 사용할 때 리포지토리를 열면 솔루션이 더 이상 자동으로 로드되지 않습니다. 대신 선택할 수 있는 목록에서 사용할 수 있는 폴더 보기 및 솔루션이 표시됩니다. Git > 설정에서 확인란을 설정/해제하여 이 동작을 변경할 수 있습니다.
Git 리포지토리 창에서 분기 이름을 두 번 클릭하여 분기를 체크 아웃할 수 있습니다. 이 동작을 변경하려면 Git > 설정에서 확인란을 토글합니다.
- 이제 Git 변경 내용 창에서 더 많은 작업을 수행할 수 있습니다. 도구 모음 아이콘을 사용자 지정할 수 있으며 표시할 작업을 선택할 수 있습니다. 오버플로 메뉴에서 여러 원격과 동기화할 수 있습니다. 또한 브라우저에서 리포지토리의 원격 웹 페이지를 열 수 있습니다.
- 로컬 및 원격 분기를 검색하고 상태 표시줄 분기 선택기에서 일반 분기 작업을 수행합니다.
- 상태 표시줄 리포지토리 선택기에서 로컬 Git 리포지토리를 검색하고 전환합니다.
- Visual Studio를 시작할 때 Git 메뉴의 로컬 리포지토리 목록이 로드되지 않는 문제를 해결했습니다.
- Git > 설정에서 리포지토리를 열고 전환하는 방법을 관리하는 두 새로운 옵션을 추가했습니다. 이제 다른 리포지토리로 전환할 때 현재 솔루션을 열린 상태로 유지할 수 있습니다.
- 리포지토리를 열 때 리포지토리 루트 폴더를 로드하지 않도록 선택할 수도 있습니다.
- 상태 표시줄의 푸시되지 않은 커밋 단추와 Git 메뉴의 동기화 명령에서 분기를 원격과 동기화(풀한 후 푸시)합니다.
- 들어오는 커밋이 없더라도 Git 리포지토리 창 기록 창에서 페치하고 풀합니다. 상태 표시줄 또는 바로 가기 키 Ctrl+0+Y를 사용하여 관련 섹션에 액세스합니다.
- 다른 창으로 이동하지 않고 세부 정보 및 파일 변경 내용 비교를 보려면 Git 리포지토리 창에서 커밋을 선택합니다. 두 커밋을 선택한 후 마우스 오른쪽 단추를 클릭하여 동일한 창에서 두 커밋을 비교합니다. 변경 내용에 대해 자세히 알아보기 위해 세부 정보를 고유한 창으로 팝아웃하여 전체 화면으로 봅니다.
- 파일의 삭제 및 삽입 횟수를 확인하고 비교 레이아웃을 변경합니다.
- Azure DevOps Git 리포지토리를 열 때 자동으로 다시 연결하거나 초기 Azure DevOps 연결을 설정하라는 프롬프트를 표시합니다. 따라서 열린 리포지토리의 작업 항목 및 빌드에 액세스할 수 있습니다.
">
- 다시 지정 또는 병합 충돌을 해결할 때 병합 편집기와 상황에 맞는 메뉴에 현재 분기와 들어오는 분기에 대한 분기 이름이 표시됩니다. 혼동되는 원본 및 대상 용어를 수정합니다.
.NET 생산성
- 사용하지 않는 프로젝트 참조 및 NuGet 패키지를 정리할 수 있도록 하는 사용하지 않는 참조 제거 명령을 추가했습니다. 이 옵션은 기본적으로 해제되어 있으므로 도구>옵션>텍스트 편집기>C#>고급에서 옵션을 사용하도록 설정하고 ‘솔루션 탐색기에 “사용하지 않는 참조 제거” 명령 표시(실험적)’를 선택해야 합니다. 이 옵션을 설정하면 솔루션 탐색기에서 프로젝트 이름 또는 종속성 노드를 마우스 오른쪽 단추로 클릭했을 때 메뉴에 사용하지 않는 참조 제거 명령이 표시됩니다.
사용하지 않는 참조 제거를 선택하면 제거할 모든 참조를 볼 수 있고 유지하려는 참조를 유지하는 옵션이 포함된 대화 상자가 열립니다.
- Shift+Enter를 커밋 문자로 사용할 때 자동으로 중괄호 세트를 삽입하고 해당 중괄호 안에 캐럿을 배치하는 스마트 구분선이라는 새 명령을 추가했습니다. 스마트 구분선은 속성, 이벤트, 필드, 개체 생성 식뿐만 아니라 중괄호를 요구하는 모든 형식 선언에 적용됩니다. 아래 예제에서는 클래스와 필드에 사용된 스마트 구분선을 보여 줍니다. 필드의 끝에 세미콜론이 없는 경우 Shift+Enter를 입력하면 중괄호 세트가 추가되어 필드가 속성으로 변환됩니다. Shift+Enter를 다시 누르면 커밋을 실행 취소할 수 있으며 필드 끝에 세미콜론이 자동으로 추가됩니다.
- 이제 LINQ 식 간소화 리팩터링을 통해 열거형에 대한 불필요한 호출을 제거하여 .Where() 메서드가 성능 및 가독성을 향상할 수 있습니다. LINQ 식에 커서를 놓습니다. (Ctrl+.)을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다. LINQ 식 간소화를 선택합니다.
- ‘열거형’ 이름을 입력하지 않은 때에도 이제 형식이 알려진 경우 ‘열거형’ 값에 대한 IntelliSense 완성이 있습니다.
- 기본 완료 옵션을 설정하는 기능을 제공하는 새 IntelliSense 완성 모드 설정을 추가했습니다. 이 새로운 설정은 도구>옵션>텍스트 편집기>고급>기본 IntelliSense 완성 모드에서 사용할 수 있습니다. 여기서 다음 옵션을 선택할 수 있습니다. 마지막 사용 - Ctrl+Alt+’스페이스바’를 사용하여 마지막으로 사용한 설정을 보존합니다. 탭 전용 - 탭 키에 대해서만 완료됩니다. ‘자동’ - 현재 문장 부호와 특수 문자에 대해 완료되는 기본 동작입니다.
- 새 줄에 새 코드 스타일 기본 설정을 추가했습니다. EditorConfig 파일을 사용하거나 도구>옵션>텍스트 편집기>C#>코드 스타일>새 줄 기본 설정(실험적) 내에서 이러한 기본 설정을 구성할 수 있습니다.
예를 들어 진단을 보고하도록 코드 스타일 기본 설정을 설정하고 빈 줄을 추가로 제거하는 코드 수정을 제공할 수 있습니다.
이제 소스 생성기에서 소스 생성 문서에서 참조를 찾을 수 있는 모든 참조 지원이 제공됩니다.
이제 메서드 호출을 작성할 때 인수를 자동으로 삽입하는 완성 옵션이 있습니다. 이 기능은 기본적으로 해제되어 있으므로 인수를 삽입하려면(실험 기능) 도구 > 옵션 > 텍스트 편집기 > C# > IntelliSense에서 기능을 사용하도록 설정하고 Tab 키를 두 번 선택해야 합니다. 메서드 호출 작성을 시작하고 Tab 키를 두 번 누릅니다(Tab+Tab). 메서드 호출에는 메서드의 기본값을 기반으로 하는 인수가 포함됩니다. 그런 다음, 매개 변수 정보를 사용하여 위쪽 및 아래쪽 화살표 키를 눌러 삽입하려는 인수 목록을 순환할 수 있습니다. 또한 인수 입력을 시작하여 IntelliSense 완성 목록을 실행하고 인수를 커밋하는 세미콜론을 입력하고 메서드 호출의 끝에 세미콜론을 추가할 수 있습니다.
- EditorConfig를 위한 UI를 만들었습니다. 솔루션에서 C# 또는 Visual Basic EditorConfig 파일을 엽니다. C#과 Visual Basic 모두에 대한 코드 스타일 및 코드 품질 구성 옵션을 표시하는 새 UI가 열립니다.
- 이제 상속 체인을 탐색하고 검사하는 시각적 표현이 있습니다. 이 옵션은 기본적으로 해제되어 있으므로 도구 > 옵션 > 텍스트 편집기 > C# > 고급에서 사용하도록 설정하고 상속 여백 표시를 선택해야 합니다. 상속 여백을 사용하도록 설정하면 코드의 구현 및 재정의를 나타내는 새 아이콘이 여백에 추가됩니다. 상속 여백 아이콘을 클릭하면 이동하도록 선택할 수 있는 상속 옵션이 표시됩니다.
- 이제 캐스트, 인덱서 및 연산자를 위한 IntelliSense 완성이 있습니다.
- 이제 소스 생성기에 대한 디버거 지원이 있습니다. 먼저 Visual Studio 설치 관리자에서 .NET Compiler Platform SDK 구성 요소를 설치해야 합니다. 그런 다음, 프로젝트 파일에
<IsRoslynComponent>
true</IsRoslynComponent>
속성을 추가해야 합니다. 다음으로, 프로젝트 속성 디버그 페이지에서 ‘Roslyn 구성 요소’ 디버거 옵션을 사용하도록 설정하고 해당하는 대상 프로젝트를 선택합니다. 그리고 생성기 코드를 디버그할 수 있는 대상 프로젝트를 빌드하는 CSC.exe/VBC.exe를 시작하는 생성기 프로젝트에서 F5 키를 누릅니다.
이 릴리스에서는 Visual Studio의 EnC(편집하며 계속하기) 디버깅 환경에 다음과 같은 향상된 기능을 추가했습니다.
- 이제 partial 클래스 내에 있는 코드에 변경 내용을 적용할 수 있습니다.
- 이제 소스에서 생성된) 파일 내에 변경 내용을 적용할 수 있습니다.
- 이제 using 지시문을 추가하거나 변경할 수 있습니다.
- 안정성이 향상되었고 메모리 사용량이 줄어들었습니다.
위의 모든 변경 내용은 현재 EnC가 지원되는 어디서나 사용할 수 있으며 C# 및 Visual Basic 소스 파일 모두에서 작동합니다.
디버거 및 진단
- 관리되는 메모리 덤프에서 일반적인 문제를 파악할 수 있는 몇 가지 분석기를 개발했습니다. 이제 관리형 Linux Core 덤프에서 이 분석을 수행할 수 있습니다.
감사합니다.
마지막으로, 이번 달 .NET 생산성(Roslyn이라고도 함)에 기여해 주신 분들께 큰 감사를 드립니다.
- Valery(@m08pvv): 호이스트된 루프 invariant 조건 PR #52168
- Martin Strecker(@MaStr11): 다른 보간된 문자열 인라인 지원 PR #49229, 캐스트, 인덱서 및 연산자를 위한 IntelliSense PR #47511
- Bernd Baumanns(@bernd5): SyntaxNode-Update 메서드에서 기본값을 사용할 때 발생하는 “정보 손실” 해결 PR #52036, 이니셜라이저 식을 통한 NormalizeWhitespace 문자열 보간 문제 해결 PR #51213
- C-xC-c(@C-xC-c): 레코드 같음 매개 변수의 이름을 ‘left’ 및 ‘right’로 변경 PR #51973
- Kai Jellinghaus(@HurricanKai): ImmutableArray를 사용하도록 Compilation.CommonSyntaxTrees 변경 PR #51905
- Huo Yaoyuan(@huoyaoyuan): 명명 스타일의 extern 메서드 무시 PR #51728, net5.0을 대상으로 지정하여 발견되는 NRT 문제 해결 PR #50895
- Alireza Habibi(@alrz): 괄호로 묶인 패턴 구문 분석 문제 해결 PR #49621
- Paul M Cohen(@paul1956): Visual Basic에 대한 코드 정리 지원 추가 PR #48092
- Petr Onderka(@svick): DocumentationCommentCompiler를 NormalizeWhitespace 후에 작동하도록 지정 PR #47360
- Youssef Victor(@Youssef1313): IDEDiagnosticIDConfigurationTests를 포함하지 않고 제외하도록 업데이트 PR #52078, 사용되지 않는 ImportingConstructor PR #52073, VB 및 C# 간의 일관된 ContainsSyntaxTree 동작 PR #52050, nameof 인수의 이름을 가져오려면 확인 PR #52016, SyntaxFactory.UsingStatement의 null 주석 수정 PR #51984, CSharpRequiredLanguageVersion 간소화 PR #51881, #error 버전에 대한 유효 언어 버전 표시 PR #51880, SymbolEqualityComparer.IncludeNullability docs 업데이트 PR #51724, TryGetMethodDescriptorAsync에 소스 생성기 포함 PR #51686, var 패턴을 바인딩 가능하도록 지정 PR #51620, SyntaxToken.Value에서 상자 사용 PR #51546, 함수 포인터 RefKind 표시 수정 PR #51223, 스위치 식의 패턴 처리 PR #50984, IMethodSymbol에 ImplementationAttributes 추가 PR #50560
- 벤자민 셰우블린 (@bschaeublin):
- 주석에서 MetadataReference 오버로드에 대한 중복 텍스트를 수정함 PR #51242
- 마틴 스트레커 (@MaStr11):
- piotrstenke(@piotrstenke):
- GeneratorContexts.cs의
<see>
태그에서 자체를 가리키는 속성을 업데이트함 PR #50896
- GeneratorContexts.cs의
- 후오 야오위안(@huoyaoyuan):
- 구조체 읽기 전용 멤버에 대해 인식하도록 키워드 추천 기능을 업데이트함 PR #50820
- 예어 할베르슈타트 (@YairHalberstadt):
- 분해에서 혼합 선언 및 할당 지원 PR #44476
- 유세프 빅터(@Youssef1313):
Razor(ASP.NET Core) 미리 보기 편집기
이제 새 미리 보기 Razor 편집기는 다음과 같은 Razor 편집 기능을 지원합니다.
- IntelliSense 완성은 이제 HTML 구성 요소, TagHelper 요소 및 C# 특성을 필터링합니다.
- C# 재정의를 위한 IntelliSense 완성
- 제네릭 구성 요소에 대한 정의 지원으로 이동합니다.
- 탭 및 공백을 위한 새 코드 스타일 구성 옵션. 해당 코드 스타일은 새 Razor 파일을 입력 및 생성하고 서식을 지정할 때 적용됩니다. 도구 > 옵션 > 텍스트 편집기 > Razor(ASP.NET Core) > 탭에서 탭과 공백을 구성할 수 있습니다.
- 도구 옵션의 Razor 텍스트 편집기 이름을 ‘ASP.NET Core Razor 언어 서비스’에서 ‘Razor(ASP.NET Core)’로 변경했습니다.
새 미리 보기 Razor 편집기를 사용하도록 설정하려면 도구 > 옵션 > 환경 > 미리 보기 기능으로 이동하여 실험적 Razor 편집기 사용을 선택한 다음 Visual Studio를 다시 시작합니다.
테스트 환경 접근성 향상
- Console.Writeline이 이제 테스트 탐색기에 표시됩니다. 긴 출력은 테스트 세부 정보 요약 창에 축소 가능한 섹션으로 표시됩니다. 특정 길이를 초과하는 출력은 처음 몇 줄만 표시되고 이후 내용은 잘린 상태로 나타나며 별도의 창에서 테스트 로그를 여는 옵션이 제공됩니다. 20개가 넘는 프레임이 있으면 스택 추적이 잘리고 처음 10개 프레임과 마지막 10개 프레임만 표시됩니다. 또한 잘림 디자인의 중요 부분에서는 테스트 실행 출력이 클 때 VS 동결을 줄이는 데 주력했습니다. 출력 용량이 큰 테스트에서 더 이상 UI 스레드를 차단하지 않습니다.
- 이제 테스트 출력에서 태그를 유지할 수 있으므로 하이퍼링크와 스택 추적 링크를 로그 파일에서도 탐색할 수 있습니다. 링크는 이제 키보드 친화적입니다.
- 출력이 300자를 초과하거나 테스트 결과에 10개가 넘는 파일이 첨부된 경우 단일 테스트 결과에 대한 로그 파일이 생성됩니다. 이제 미리 보기에서 로그 파일을 열 수 있으므로 탭을 쉽게 관리할 수 있습니다. 로그 파일 및 테스트 탐색기에서 커서 탐색을 위한 Ctrl PgUp/PgDn과 선택을 위한 Shift+Ctrl PgUp/PgDn을 지원합니다.
- 이제 로그 파일 편집기에서 IVsTextView 인터페이스를 사용하므로 매우 큰 텍스트 파일을 열 수 있습니다. 따라서 사용자가 잘린 로그를
Copy All
한 후 메모장과 같은 별도의 편집기에서 열 필요가 없습니다. MSTest의 경우 이제 데이터 행별로 별도의 로그 파일을 포함하는 대신 모든 출력을 집계하는 단일 로그 파일도 포함합니다.
테스트 도구
- 이제 Ubuntu 및 Alpine의 명령줄에서 dotnet cli를 사용하여 플랫폼 간 코드 검사를 가져올 수 있습니다. 이러한 플랫폼을 대상으로 하는 머신에서 코드 검사를 가져오는 데 관심이 있는 사용자는 이제 Windows에서 일반적으로 사용하는 것과 동일한 코드 검사 모음 명령을 추가할 수 있습니다. dotnet 테스트에 대한 추가 설명서를 참조하세요.
- 이제 테스트탐색기의 모두 축소 단추 옆에 모두 확장 단추가 있습니다. 이 명령은 바로 가기 키(Ctrl+A, Ctrl+ 오른쪽 화살표)를 통해 사용할 수 있었지만 추가 피드백은 단추를 추가하는 것이 추가 UI에 대한 가치가 있음을 나타냈습니다. 언제든지 https://developercommunity.visualstudio.com/을 통해 의견을 보내 주셔서 감사합니다.
- 또한 테스트 탐색기에 “부실”이 표시되는 방법이 약간 변경되었습니다. “부실”은 테스트 결과를 회색으로 표시하거나 “흐리게” 표시하여 결과가 최신 테스트 실행에서 나오지 않았음을 나타냅니다. 결과가 가장 최근의 테스트 실행의 일부가 아닌 경우 부실로 표시됩니다. 이전에는 새 테스트 검색(또는 다시 검색된 이전 테스트 결과도 포함)이 단색 아이콘으로 표시되었습니다. 이로 인해 일부 ‘실행되지 않음’ 테스트가 흐리게 표시되고 다른 테스트는 그렇지 않은 이유에 대해 약간 혼동하게 되었습니다. 이렇게 변경함으로써 부실의 복잡성이 줄어듭니다.
- 지속형 테스트 결과 기능(버전 16.2에 추가됨)을 통해 Visual Studio를 닫았다가 다시 연 경우에도 마지막 테스트 실행의 테스트 결과를 볼 수 있습니다. 이렇게 하면 사용자가 중단한 위치를 기억할 수 있으며 다른 테스트를 실행할 필요 없이 더 많은 컨텍스트가 제공됩니다. 또한 항상 부실로 표시되도록 지속형 결과의 동작을 수정합니다. 이렇게 하면 현재 Visual Studio 세션 중에 실행된 테스트 실행에서 나온 것이 아님을 더 잘 나타냅니다.
웹 도구
동적 구성을 사용하면 미들웨어를 사용하여 구성 리소스를 자동으로 새로 고칠 수 있습니다. 연결된 서비스로서의 Azure App Configuration이 이제 동적 구성을 애플리케이션에 자동으로 통합할 수 있습니다. 이 연결된 서비스를 사용하려면 연결된 서비스를 클릭하고 Azure App Configuration을 서비스 종속성으로 추가합니다.
Windows 애플리케이션 패키징 프로젝트 ‘종속성 트리’
- WAP(Windows 애플리케이션 패키징 프로젝트)에서 NuGet 패키지 참조를 구현한 작년 작업에 대한 후속 작업으로 WAP의 솔루션 탐색기 환경에서 새 UI를 구현했습니다. 이전 환경에서는 이 패키지 참조를 표시하거나 UI를 통해 NuGet 패키지를 추가하도록 허용하지 않았습니다.
- 새로운 환경에서는 CPS 및 .NET 프로젝트 시스템의 도움을 받아 ‘애플리케이션’ 하위 트리를 통해 프로젝트 참조를 계속 표시하고 NuGet 패키지를 관리할 수 있는 ‘패키지’ 하위 트리도 제공하는 ‘종속성 트리’를 구현했습니다.
향상된 XAML 도구 기능(WPF 및 Xamarin.Forms)
Xamarin.Forms
이 릴리스에서는 Xamarin.Forms 고객을 위해 XAML IntelliSense 및 XAML 핫 다시 로드 기능의 두 가지 측면을 약간 개선했습니다. 핫 다시 로드 “변경만”은 다음에 대해 더 이상 잘못된 오류를 보고하지 않습니다.
- 형식(예:
<Setter Property="BackgroundColor" Value="Red">
)을 지정하지 않고 속성을 참조하는 VisualStateManager의 setter - <ResourceDictionary.MergedDictionaries> 요소에 래핑되지 않은 병합된 ResourceDictionaries
예시:
<Application>
<Application.Resources>
<ResourceDictionary Source='Colors.xaml'/>
<Style TargetType='Label'> ... <Style>
</Application.Resources>
</Application>
XAML 샘플 데이터
이 릴리스에서는 제네릭 샘플 데이터를 ItemsControls에 추가하는 새로운 방식을 도입하여 XAML 디자이너의 디자인 타임 데이터 기능을 더욱 개선했습니다. 이 기능은 WPF에서 ListBox, ListView 및 DataGrid에만 적용됩니다.
- ListBox, ListView 또는 DataGrid에서
d:ItemSource='{d:SampleData}'
를 설정하여 샘플 데이터를 사용하도록 설정할 수 있습니다. - 그러면 DataTemplates 및 바인딩 경로와 일치하는 세트(5개 항목)만 디자이너의 컨트롤에 채워집니다.
ItemCount
속성을 사용하여 생성되는 항목 수를 변경할 수 있습니다(예:d:ItemSource='{d:SampleData ItemCount=3}'
).
XAML 디자이너 빠른 작업
XAML 디자이너에서 선택한 컨트롤의 모서리 근처에 있는 새 전구를 사용하여 해당 컨트롤에 대해 일반적으로 편집되는 속성에 빠르게 액세스할 수 있습니다.
지원되는 컨트롤은 다음과 같습니다.
- UWP: Border, Button, Canvas, CheckBox, ComboBox, Grid, HyperlinkButton, Image, ListBox, ListView, NavigationView, RadioButton, Slider, StackPanel, TextBlock, TextBox
- WPF: Border, Button, Canvas, CheckBox, ComboBox, Grid, Image, Label, ListBox, ListView, StackPanel, TextBlock, TextBox
이 기능은 UWP, WPF .NET Core, WPF .NET Framework에서 사용할 수 있습니다(옵션 대화 상자에서 “.NET Framework용 새 WPF XAML 디자이너” 미리 보기 기능을 설정한 상태).
XAML 디자이너 빠른 작업에는 확장성 모델도 있습니다. 사용자 고유의 작업을 만드는 방법에 관한 자세한 내용은 XAML 디자이너 확장성 GitHub를 참조하세요.
XAML용 MVVM 도구
이 릴리스에서는 XAML 편집기에 뷰 모델을 만들기 위한 전구를 도입했습니다. 프로젝트에서 MVVM 프레임워크가 사용되고 있음이 감지되면 이 전구는 XAML 문서의 루트 요소에 표시됩니다. 대화 상자에서 생성된 뷰 모델 네임스페이스, 폴더 및 상속된 기본 뷰 모델을 사용자 지정할 수 있습니다.
또한 전구는 생성된 뷰 모델을 XAML 문서에 대한 x:DataType(Xamarin.Forms) 또는 d:DataContext(다른 모든 플랫폼)로 설정하여 사용자는 XAML 편집기 전구를 추가로 활용하여 뷰 모델에서 바인딩된 속성 및 명령을 생성할 수 있습니다.
Service Fabric 도구
이 기능은 Service Fabric 애플리케이션 디자인에 StartupServices.xml 파일을 도입합니다. 이 파일은 ApplicationManifest.xml의 DefaultServices 섹션을 호스트합니다. 이 구현을 사용하면 DefaultServices 및 Service 정의 관련 매개 변수가 기존 ApplicationManifest.xml에서 StartupServices.xml이라는 이 새 파일로 이동합니다. 이 파일은 Visual Studio의 각 기능(빌드/다시 빌드/F5/Ctrl+F5/게시)에 사용됩니다.
이번 릴리스에서 해결된 주요 문제
- Edit.SmartBreakline 명령을 호출하는 C# 개발자가 속성의 접근자에 있는 모든 콘텐츠를 제거하는 문제를 해결했습니다.
- codestyle 설정을 업데이트하는 개발자가 원하는 폴더 내부가 아니라 모든 Visual Studio 인스턴스에서 변경을 적용하는 문제를 해결했습니다.
- 네이티브 또는 병합된 프로젝트를 열 때마다 “코드 변경 내용 적용” 아이콘이 표시됩니다. 개발자가 디버깅을 시작한 후에만 활성화됩니다.
- AudioUnitPropertyIDType의 호환성이 손상되는 변경을 해결합니다.
- UWP 단위 테스트 프레임워크를 사용하는 개발자가 원격 디바이스에서 테스트를 실행할 수 없는 문제를 해결했습니다.
Developer Community
Developer Community에 이 릴리스에서 제공하는 모든 항목을 보여 주는 전체 목록이 있습니다.
16.10에서 릴리스된 몇 가지 주요 문제 중 일부는 다음과 같습니다.
- .sqlproj가 변경 내용으로 업데이트되지 않음
- 복합 리터럴 이니셜라이저의 배열 액세스에서 잘못된 오프셋을 제공함
- Visual Studio 2019 미리 보기 2 표준 c++ 라이브러리 모듈 문제/주석
- Visual Studio 2019는 CMakeFiles.txt 또는 CMakeSettings.json을 누를 때마다 여전히 CMakeBuild 디렉터리를 초기화함
- MSVC가 람다 내에서 constexpr을 준수하지 않음
- Noexcept 기본 생성자
- /Wall이 설정된 경우 #Pragma 경고(push, ))가 해당 범위에 대한 모든 경고를 비활성화하지는 않음
- Constexpr-if 및 사용되지 않는 매개 변수
- constexpr initializer_list를 선언할 수 없음
- 템플릿 매개 변수의 C++ 최신 호출 규칙 혼동
- Visual Studio 2019 업데이트를 확인할 수 없음
- ‘공백 문자 잘라내기 무시’를 선택 취소하면 Git 비교 창에 파일의 모든 것이 변경된 것으로 표시됨
- 탭 대신 공백이 삽입됨
- ASP.NET Core 5의 Visual Studio 디버거 시각화 도우미 및 BinaryFormatter
- Linux용 VS: 16.9 업데이트 후 원격 컴퓨터의 출력 파일이 잘못된 위치에 빌드됨
- 일부 고정된 열린 탭이 Visual Studio를 다시 시작할 때 고정 해제됨
- Visual Studio 2019를 16.9.4로 업그레이드하면 컴파일/링크 오류가 발생
- GC가 c++/cli ref 클래스에서 메서드를 호출하는 동안 수집
- CRT의 Trace.cpp에 EncodePointer/DecodePointer 논리 버그
- 요소에 잘못된 값 ‘EnableAllWarnings’가 포함됨
- 유효한 코드에 대해 E0144가 보고됩니다. (Intellisense 오류).
- Visual Studio v16.9.0으로 업그레이드한 후 ‘잘못된 템플릿 인수, 컴파일 시간 상수 식이 예상됨’
- Visual Studio 2019는 CMakeFiles.txt 또는 CMakeSettings.json을 누를 때마다 여전히 CMakeBuild 디렉터리를 초기화함 (https://developercommunity.visualstudio.com/t/sizeof-array-to-pointer-VC-weirdness/1396250)* [Sizeof array-to-pointer VC weirdness](Sizeof 배열-포인터 VC 이상)
- Visual Studio Community 2019 버전 16.9.0으로 업데이트 후 Xamarin.Android에 잘못된 문자 예외가 있음
- Microsoft.VisualStudio.TestStorage.TestStoreIndexingException: 테스트 결과를 추가하지 못함
- Linux용 VS: 16.9 업데이트 후 원격 머신의 출력 파일이 잘못된 위치에 빌드됨
- 고정된 열린 탭 일부가 VS를 다시 시작할 때 고정 해제됨
- 재발 16.9.0: F7 키(즉, “코드 보기”)가 Xamarin Xaml 파일에서 작동하지 않음
- 꽤 작은 양의 코드를 컴파일하는 데 cl.exe가 5GB 이상의 RAM을 사용함
- TypeConverter 특성이 사용자 지정 열거형 형식에 적용되었을 때 제안된 작업에 열거형 값이 표시되지 않음
- 테스트 탐색기가 netcore3.1 및 net5.0에서 테스트를 실행하지 못하지만, net461에서는 작동함
- /O2로 잘못된 코드가 생성됨
- 상황에 맞는 메뉴의 코드 보기가 작동하지 않음
- 오류 C1001: 내부 컴파일러 오류(컴파일러 파일 ‘D:\a01_work\4\s\src\vctools\Compiler\Utc\src\p2\main.c’, 줄 213)
- 설치 관리자의 VS 확장 대화 상자에서 Live Share를 제거하지 못함
- MSVC가 템플릿 함수에서 포인터와 정수 간의 잘못된 비교를 허용함
- IntelliSense 검색 중에 Visual Studio가 응답하지 않음
- vcpkgsrv 크래시로 인해 IntelliSense가 중단됨
- vcpkgsrv.exe 프로세스 목록이 계속 커짐
- Visual Studio 분기 병합 시 잘못된 분기 이름이 표시됩니다.
- Visual Studio 2019에서 자주 발생하는 오류: “애플리케이션이 다른 스레드를 위해 배열된 인터페이스를 호출했습니다.”
- 코드 파일에서 테스트를 시작(예: Ctrl+R, T 사용)하면 LiveShare 구성 요소를 설치되지 않은 경우에도 로드하려고 시도합니다.
- 프로젝트에서 대상 런타임이 다른 클래스 라이브러리 프로젝트를 참조할 경우 .NET Core 3.1 및 .NET 5.0용 ClickOnce 게시가 실패할 수 있습니다.
- C++20 모듈을 사용할 때 E1504: 내부 오류를 수정했습니다.
- C++ IntelliSense가 “using enum”을 인식하지 않습니다.
- Visual Studio 2019 Enterprise RTM - .NET SDK 기반 프로젝트(TargetFrameworkMoniker .NET 4.7.2).
- 구성 출력 구문 분석 오류를 수정했습니다.
- LiveShare가 설치되지 않은 경우 “‘VslsFileSystemProviderVSCorePackage’ 패키지가 올바르게 로드되지 않았습니다.”라는 메시지가 표시됩니다.
- Xamarin iOS 바인딩 프로젝트 빌드는 Visual Studio v16.9에서 더 이상 작동하지 않습니다.
- 정적 라이브러리를 생성하는 도구 집합 16.9 회귀 vcxproj: pdb가 더 이상 출력에 복사되지 않습니다.
- 원격 Linux 머신 연결에서 잘못된 대상 경로를 사용합니다.
- 복사 초기화: 오버로드 확인 문제를 해결했습니다.
- range-v3 라이브러리를 사용하는 잘못된 IntelliSense 물결선
- DiagnosticDataSerializer.ReadDiagnosticDataArray에서 예외가 발생하고 금색 막대가 표시됩니다.
알려진 문제
아래 링크에 따라 Visual Studio 2019에서 알려진 미해결 문제 및 해결 방법을 모두 확인하세요.
피드백 및 제안
많은 의견 부탁드립니다! 문제가 있으면 설치 관리자나 Visual Studio IDE 자체의 오른쪽 위에서 문제 보고 옵션을 통해 알려주세요. 아이콘은 오른쪽 위 모서리에 있습니다. Visual Studio 개발자 커뮤니티에서 제품에 대해 제안하거나 문제를 추적하고, 질문하고 대답을 찾고 새로운 기능을 제안할 수 있습니다. 라이브 채팅 지원을 통해 무료 설치 도움말을 가져올 수도 있습니다.
Blogs
개발자 도구 블로그 사이트에서 사용 가능한 인사이트 및 권장 사항을 활용하여 모든 새 릴리스에 대한 최신 정보와 다양한 기능에 대한 심층적인 게시물을 확인하세요.
Visual Studio 2019 릴리스 정보 기록
이전 버전의 Visual Studio 2019와 관련된 자세한 내용은 Visual Studio 2019 릴리스 정보 기록 페이지를 참조하세요.