Visual Studio Icon Visual Studio 2019 버전 16.7 릴리스 정보Visual Studio 2019 version 16.7 Release Notes


| 개발자 커뮤니티 | 시스템 요구 사항 | 호환성 | 배포 가능한 코드 | 사용 조건 | 블로그 | 최근 릴리스된 알려진 문제 || Developer Community | System Requirements | Compatibility | Distributable Code | License Terms | Blogs | Latest Release Known Issues |


단추를 클릭하여 최신 버전의 Visual Studio 2019를 다운로드합니다.Click a button to download the latest version of Visual Studio 2019. Visual Studio 2019 설치 및 업데이트에 대한 지침은 Visual Studio 2019를 최신 릴리스 버전으로 업데이트를 참조하세요.For instructions on installing and updating Visual Studio 2019, see the Update Visual Studio 2019 to the most recent release. 또한 오프라인으로 설치하는 방법에 대한 지침도 참조하세요.Also, see instructions on how to install offline.


Visual Studio 2019 버전 16.7의 새로운 기능What's New in Visual Studio 2019 version 16.7

지원 기간Support Timeframe

Visual Studio 2019 버전 16.7은 Visual Studio 2019에 지원되는 세 번째 서비스 기준입니다.Visual Studio 2019 version 16.7 is the third supported servicing baseline for Visual Studio 2019. 장기적으로 안정적인 보안 개발 환경을 채택해야 하는 엔터프라이즈 및 전문 고객은 이 버전을 표준화하는 것이 좋습니다.Enterprise and Professional customers needing to adopt a long term stable and secure development environment are encouraged to standardize on this version.  수명 주기 및 지원 정책에 자세히 설명된 대로 버전 16.7은 다음 서비스 기준이 릴리스되고 1년 동안 수정 및 보안 업데이트로 지원됩니다.  As explained in more detail in our lifecycle and support policy, version 16.7 will be supported with fixes and security updates for one year after the release of the next servicing baseline.

또한 버전 16.7을 사용할 수 있으므로 마지막 서비스 기준이었던 버전 16.4는 12개월 동안 추가로 지원되며 2021년 10월에 지원이 종료될 예정입니다.In addition, now that version 16.7 is available, version 16.4, which was the last servicing baseline, will be supported for an additional 12 months and will go out of support in October 2021. 버전 16.5 및 16.6은 더 이상 지원되지 않습니다. Note as well that versions 16.5 and 16.6 are no longer under support. 이러한 중간 릴리스는 다음 부 업데이트가 출시될 때까지만 서비스 수정 사항을 수신합니다.These intermediary releases received servicing fixes only until the next minor update released.

my.visualstudio.com의 다운로드 섹션에서 가장 안전한 최신 버전의 Visual Studio 2019 버전 16.7을 다운로드할 수 있습니다.You can acquire the latest most secure version of Visual Studio 2019 version 16.7 in the downloads section of my.visualstudio.com.  Visual Studio에서 지원 기준에 대한 자세한 내용은 Visual Studio 2019 지원 정책을 참조하세요.  For more information about Visual Studio supported baselines, please review the support policy for Visual Studio 2019.

Visual Studio 2019 버전 16.7 릴리스Visual Studio 2019 version 16.7 Releases

Visual Studio 2019 보관된 릴리스 정보Visual Studio 2019 Archived Release Notes

Visual Studio 2019 블로그Visual Studio 2019 Blog

Visual Studio 2019 블로그는 Visual Studio 엔지니어링 팀에서 제공하는 제품 인사이트에 대한 공식적인 정보원입니다.The Visual Studio 2019 Blog is the official source of product insight from the Visual Studio Engineering Team. 다음 게시물에서 Visual Studio 2019 릴리스에 대한 자세한 정보를 찾을 수 있습니다.You can find in-depth information about the Visual Studio 2019 releases in the following posts:


Release Notes Icon Visual Studio 2019 버전 16.7.0Visual Studio 2019 version 16.7.0New release icon

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

Visual Studio 2019 버전 16.7.0 릴리스In This Release of Visual Studio 2019 version 16.7.0

C++C++

  • 이제 원격 C++ 지원에서 sh, csh, bash, tsch, ksh, zsh 및 dash를 비롯해 더 광범위한 Linux 배포판 및 셸을 지원합니다.Our remote C++ support now supports a wider range of Linux distros and shells, including sh, csh, bash, tsch, ksh, zsh, and dash. ConnectionManager.exe를 통해 새 “shell” 속성을 수정하여 원격 연결의 셸 선택을 재정의할 수 있습니다.You can override the choice of a shell for a remote connection by modifying the new "shell" property via ConnectionManager.exe. 이 지원은 원격 Linux 시스템 또는 WSL을 대상으로 하는 CMake 프로젝트와 MSBuild 기반 Linux 프로젝트 모두에서 테스트되었습니다.This support has been tested with both MSBuild-based Linux projects and CMake projects targeting a remote Linux system or WSL.
  • 이제 Ninja(증분 빌드를 매우 빠르게 평가하는 빌드 시스템)를 사용하여 MSBuild 기반 Linux 프로젝트의 증분 빌드 시간을 단축할 수 있습니다.You can now use Ninja (a build system that evaluates incremental builds very quickly) to improve incremental build times for MSBuild-based Linux projects. 이 기능을 옵트인하려면 일반 속성 페이지에서 “Enable Incremental Build”(증분 빌드 사용)를 “With Ninja”(Ninja 사용)로 설정합니다.You can opt into this feature by setting "Enable Incremental Build" to "With Ninja" in the General Property Page. Ninja(ninja-build)가 원격 Linux 시스템 또는 WSL에 설치되어 있어야 합니다.Ninja (ninja-build) must be installed on your remote Linux system or WSL.
  • 새 C++20 표준 라이브러리 기능이 구현되었습니다.New C++20 Standard Library features have been implemented. 자세한 목록은  GitHub의 STL 변경 로그 를 참조하세요.Please refer to the STL Changelog on GitHub for a detailed list.
  • 이제 연결 관리자에서 기본 원격 SSH 연결을 편집하고 설정할 수 있습니다.You can now edit and set default remote SSH connections in the Connection Manager. 즉, 기존 원격 연결을 편집하고(예: IP 주소가 변경된 경우) CMakeSettings.json 및 launch.vs.json에서 기본 연결을 사용하도록 설정할 수 있습니다.This means you can edit an existing remote connection (e.g. if its IP address changed) and set default connections to be consumed in CMakeSettings.json and launch.vs.json. 원격 SSH 연결을 사용하면 Visual Studio에서 직접 원격 Linux 시스템의 C++ 프로젝트를 빌드하고 디버그할 수 있습니다.Remote SSH connections allow you to build and debug C++ projects on a remote Linux system directly from Visual Studio.
Edit remote connections in the Connection Manager
연결 관리자에서 원격 연결 편집Edit remote connections in the Connection Manager
  • Visual Studio에서 Windows의 Clang(clang-cl)에 대한 IntelliSense 지원이 향상되었습니다.Enhanced IntelliSense support for Clang on Windows (clang-cl) in Visual Studio. 이제 clang 포함 경로에 clang 라이브러리가 포함되며, 표준 라이브러리를 사용할 때의 편집기 내 물결선 표시를 개선하고 clang 모드에서 C++2a에 대한 지원을 추가했습니다.The clang include path now includes the clang libraries, we've improved in-editor squiggle display when using the std library, and we've added support for C++2a in clang mode.
  • 이제 코드 오류에 밑줄을 표시하고 C++ 프로젝트에서 제안된 빠른 수정 사항을 확인할 수 있습니다.You can now try out underlining code errors and see more suggested quick fixes in C++ projects.도구 > 옵션 > 텍스트 편집기 > C/c + + > 실험적 > ' 실험적 코드 사용 안 함 '을 false로 설정 하 여이 기능을 사용 하도록 설정 합니다. Enable this feature under Tools > Options > Text Editor > C/C++ > Experimental > Set 'Disable Experimental Code Linter' to false. C++ 팀 블로그에서 자세히 알아보세요.Learn more on the C++ Team Blog.
IntelliSense code linter
IntelliSense 코드 LinterIntelliSense code linter
  • 추가 보안 기능을 C++에 통합하는 네 가지 새로운 코드 분석 규칙을 추가했습니다. C26817, C26818, C26819, and C26820.We've added four new code analysis rules to incorporate additional safety features into C++: C26817, C26818, C26819, and C26820.
  • gdbserver를 사용하여 원격 시스템에서 CMake 프로젝트를 디버그하기 위한 최고 수준의 지원이 추가되었습니다.We've added first-class support for debugging CMake projects on remote systems with gdbserver.
  • Visual Studio에서 C++용 AddressSanitizer의 실험적 구현(이제 x64 네이티브 프로젝트에 사용할 수 있음)으로 메모리 손상 오류를 쉽게 찾을 수 있습니다.Find memory corruption errors easily with an experimental implementation of AddressSanitizer for C++ in Visual Studio, now available for x64 native projects. 또한 이제 디버그 런타임(/MTd, /MDd, /LDd) 사용을 지원합니다.We also now support the use of debug runtimes (/MTd, /MDd, /LDd).
  • IntelliSense에서 이제 개념, 지정된 이니셜라이저 및 몇 가지 다른 C++20 기능을 기본적으로 지원합니다.IntelliSense now has basic support for Concepts, designated initializers, and several other C++20 features.
  • .ixx 및 .cppm 파일은 이제 C++로 인식되며 구문 형광펜과 IntelliSense에서 이와 같이 처리됩니다..ixx and .cppm files are now recognised as C++ and will be treated as such by the syntax highlighter and IntelliSense.

동적으로 재생 목록 정의Define playlists dynamically

이제 프로젝트, 클래스 또는 네임스페이스를 기반으로 재생 목록을 동적으로 정의할 수 있습니다.You can now define playlists dynamically based on Project, Class, or Namespace. 즉, 특정 프로젝트/클래스/네임스페이스의 모든 항목을 포함하도록 재생 목록을 구성할 수 있습니다. 해당 그룹에 추가된 새 테스트는 자동으로 재생 목록에 포함됩니다.This means you can configure a playlist to include everything in a certain project/class/namespace; any new test added to that group will automatically be included in your playlist!

  • 테스트 탐색기에서 프로젝트, 네임스페이스 또는 클래스 그룹화를 마우스 오른쪽 단추로 클릭하여 재생 목록을 만드세요.Create a playlist by right clicking on a project, namespace, or class grouping in the Test Explorer.
Test Explorer: Create a playlist
테스트 탐색기: 재생 목록 만들기Test Explorer: Create a playlist
  • 도구 모음에서 편집 단추를 클릭하여 재생 목록에 포함되는 그룹을 편집합니다.Edit what groups are included in the playlist by clicking on the edit button in the tool bar. 확인란이 나타납니다.Check boxes will appear. 원하는 대로 그룹을 편집합니다.Edit groups as desired.
Test Explorer: Edit a playlist
테스트 탐색기: 재생 목록 편집Test Explorer: Edit a playlist
  • 이러한 재생 목록은 테스트의 정적 목록이 아니며 규칙에 따라 동적으로 업데이트됩니다.Instead of being a static list of tests these playlists dynamically update based on rules. 동적 재생 목록을 생성하는 규칙을 더 잘 이해하려면 저장 단추를 사용하여 재생 목록 파일을 디스크에 저장하고 xml로 생성된 규칙을 확인합니다.If you want to better understand what rules are generating your dynamic playlist, save the playlist file to disk with the save button and view the rules generated in the xml.
PlayList file dynamic rule set
PlayList 파일 동적 규칙 집합PlayList file dynamic rule set
  • 개별 테스트를 계속 포함/제외할 수 있으며, 재생 목록은 동적 규칙을 업데이트하거나 테스트를 정적 목록으로 추적하도록 다시 전환할 수 있습니다.You can continue to include/exclude individual tests and the playlist will be able to either update its dynamic rules or switch back to keeping track of tests as a static list. 또한 특성을 사용하면 재생 목록 xml 파일을 직접 편집하여 동적 그룹을 정의할 수 있습니다.You can also use traits to define a dynamic group by editing the playlist xml file directly.

Git 생산성Git Productivity

이 환경을 사용하려면 도구 | 옵션 | 환경에서 ‘새 Git 사용자 환경’ 미리 보기 기능을 켭니다.Toggle on the 'New Git user experience' Preview Feature in Tools | Options | Environment to use this experience.

  • 원하는 폴더 또는 새로운 폴더에서 시작하여 새 Git 리포지토리 만들기Create a new Git repository, starting from any folder or a brand new folder
  • 새 복제 작업을 시작하기 전에 열려 있는 폴더 또는 솔루션을 저장하고 닫습니다.Save and close an open folder or solution before starting a new clone operation
  • 커밋 텍스트 상자에서 커밋 또는 스태시 메시지 오류를 명확히 표시합니다.View commit or stash message errors clearly in the commit text box
  • 새 Git 리포지토리 창의 트리 뷰에서 Git 분기 보기 및 관리View and manage Git branches in a tree view within a new Git Repository window
  • Git 리포지토리 창에서 각 분기의 기록 그래프 간 전환 및 그래프 조작Switch between and interact with the history graph of each branch in the Git Repository window
  • Git 리포지토리 창에서 들어오고 나가는 커밋 보기View incoming and outgoing commits in the Git Repository window
  • 최신 기능에 대한 자세한 정보가 포함된 Git 생산성 팀 블로그Git Productivity team blog with more details of recent features
Manage branches and view history in a focused Git Repository window
포커스가 있는 Git 리포지토리 창에서 분기 관리 및 기록 보기Manage branches and view history in a focused Git Repository window

다음을 사용하여 Git에 포커스가 있는 병합 편집기와 병합 충돌을 해결합니다.Resolve merge conflicts with a Git focused merge editor using:

  • 병합 충돌을 포함하는 파일의 정보 표시줄에 병합 편집기를 열지 확인하는 메시지가 표시됩니다.An info bar in files containing merge conflicts that prompts you to open the merge editor
  • 제목과 캡션에서 더 많은 정보를 제공하고 병합 편집기의 내용이 더 깔끔하게 표시됩니다.More informative titles and captions, and less clutter in the merge editor
  • 일치하는 줄을 정렬하고, 단어 수준 차이를 표시하고, 공백을 표시하여(공백이 유일한 차이점인 경우) 충돌 항목 간 차이점을 나타냅니다.Diffs within conflicts that align matching lines, show word level differences, and display visible whitespace when it is the only difference.
  • 파일 수준의 양방향 병합에 충돌이 추가됩니다.Two-way merges for file level add/add conflicts
  • 한 번의 클릭으로 양방향 충돌을 모두 해결할 수 있습니다.The ability to resolve all conflicts to one side or the other with a single click
  • 충돌하지 않는 차이점은 무시하고 충돌 항목에만 집중하도록 전환합니다.A toggle to focus on just conflicts, ignoring non-conflicting differences
New Merge Editor Experience
병합 편집기와 병합 충돌 해결Resolve Merge Conflicts with the Merge Editor

JavaScript/TypeScriptJavaScript/TypeScript

  • LiveShare 시나리오를 더 잘 지원할 수 있도록 완료 및 요약 정보 구현이 업데이트되었습니다.The implementations of Completion and Quick Info have been updated to better support LiveShare scenarios.

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

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

Kubernetes를 사용한 로컬 프로세스를 사용하면 나머지 애플리케이션 또는 서비스를 Kubernetes 클러스터에 연결한 상태에서 개발 워크스테이션에서 .NET 코드를 작성, 테스트 및 디버그할 수 있습니다.Local Process with Kubernetes allows you to write, test and debug your .NET code on your development workstation while connected to your Kubernetes cluster with the rest of your application or services. 개발 워크스테이션을 클러스터에 연결하면 개발 컴퓨터에서 종속 서비스를 수동으로 실행하고 구성할 필요가 없습니다.By connecting your development workstation to your cluster, you eliminate the need to manually run and configure dependent services on your development machine. 클러스터의 환경 변수, 연결 문자열 및 볼륨을 로컬로 실행되는 마이크로 서비스 코드에서 사용할 수 있습니다.Environment variables, connection strings and volumes from the cluster are available to your microservice code running locally. Dockerfile 또는 Kubernetes 매니페스트와 같은 추가 자산이 필요하지 않습니다.There is no need for extra assets, such as a Dockerfile or Kubernetes manifests. 평소에 하던 방식으로 .NET 코드를 실행, 디버그 및 테스트합니다.Run, debug, and test your .NET code as you normally would.

Kubernetes로 로컬 프로세스를 사용하도록 설정하려면 도구 > 옵션 > 환경 > 미리 보기 기능으로 이동하고 “Kubernetes 서비스에 로컬 디버깅 사용”을 선택합니다.To enable Local Process with Kubernetes, go to Tools > Options > Envrionment > Preview Features and select "Enable local debugging for Kubernetes services".

Enable Preview Features
미리 보기 기능 사용Enable Preview Features

.NET 콘솔 애플리케이션의 경우 추가 단계가 필요합니다.For .NET console applications, an additional step is required. “Microsoft.VisualStudio.Azure.Kubernetes.Tools.Targets” Nuget 패키지를 설치합니다.Install the "Microsoft.VisualStudio.Azure.Kubernetes.Tools.Targets" Nuget Package.

.NET 생산성.NET Productivity

이제 비표시 오류(Suppression) 연산자가 있지만 영향을 주지 않는 경우 경고와 코드 수정이 표시됩니다.There is now a warning and code fix when a suppression operator is present but has no effect. 올바른 부정 식을 제안하는 두 번째 코드 수정도 사용할 수 있습니다.A second code fix suggesting the correct negating expression is also available. 비표시 오류(Suppression) 연산자에 커서를 놓습니다.Place your cursor on the suppression operator. (Ctrl + . )을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다.Press (Ctrl + .) to trigger the Quick Actions and Refactorings menu. 다음 중 하나를 선택합니다.Next, select from one of the following:

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

이제 한 형식의 생성자를 생성할 때 속성을 생성할 수 있습니다.You can now generate properties when generating a constructor in a type. 커서를 인스턴스에 놓습니다.Place your cursor on the instance. (Ctrl + . )을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다.Press (Ctrl + .) to trigger the Quick Actions and Refactorings menu. <QualifiedName>에서 생성자 생성(속성 사용) 을 선택합니다.Select Generate constructor in <QualifiedName> (with properties).

Generate properties when generating constructor
생성자를 생성할 때 속성 생성Generate properties when generating constructor
  • 이제 요약 정보에 도움말 링크와 함께 진단 ID가 표시됩니다. 도움말 링크를 통해 설명서로 쉽게 이동하여 코드의 경고 및 오류에 대해 자세히 알아볼 수 있습니다.Quick Info now displays the diagnostic ID along with a help link where you can easily navigate to our documentation to learn more about warnings and errors in your code.
Quick Info Diagnostic ID and Help Link
요약 정보 진단 ID 및 도움말 링크Quick Info Diagnostic ID and Help Link
  • 이제 디버거 표시 특성을 클래스에 추가하는 빠른 작업이 생겼습니다.There is now a quick action to add a debugger display attribute to a class. 이를 통해 코드에서 프로그래밍 방식으로 디버거 안에 속성을 고정할 수 있습니다.This allows you to pin properties within the debugger programmatically in your code. 커서를 클래스 이름에 놓습니다.Place your cursor on the class name. (Ctrl+ . )을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. 'DebuggerDisplay' 특성 추가를 선택합니다.Select Add ‘DebuggerDisplay` attribute. 이렇게 하면 디버거 표시 특성이 클래스 맨 위에 추가되고 ToString()을 반환하는 자동 메서드가 생성됩니다. 이 메서드를 편집하여 디버거에 고정하려는 속성 값을 반환할 수 있습니다.This will add the debugger display attribute to the top of your class and generate an auto method that returns ToString() which you can edit to return the property value you want pinned in the debugger.
Add Debugger Display Attribute
디버거 표시 특성 추가Add Debugger Display Attribute
  • 이제 실수로 인한 동일 변수에 할당 또는 동일 변수와의 비교에 대한 코드 수정이 생겼습니다.There is now a code fix for accidental assignments or comparisons to the same variable. 커서를 경고에 놓습니다.Place your cursor on the warning. (Ctrl+ . )을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. 실수로 인한 할당의 경우 .value에 할당을 선택합니다.For accidental assignments, select Assign to .value. 실수로 인한 비교의 경우 .value와 비교를 선택합니다.For accidental comparisons, select Compare to .value.
Accidental Assignments Code Fix
실수로 인한 할당 코드 수정Accidental Assignments Code Fix
Accidental Comparisons Code Fix
실수로 인한 비교 코드 수정Accidental Comparisons Code Fix
  • 이제 IComparable을 구현하는 형식의 비교 연산자를 생성할 수 있습니다.You can now generate comparison operators for types that implement IComparable. 클래스 내부 또는 IComparable에 커서를 놓습니다.Place your cursor either inside the class or on IComparable. (Ctrl+ . )을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. 비교 연산자 생성을 선택합니다.Select Generate comparison operators. 비교 연산자와 함께 상용구가 생성됩니다.A boiler plate will be generated for you with the comparison operators.
Generate Comparison Operators
비교 연산자 생성Generate Comparison Operators
  • 이제 구조체의 .Equals를 생성할 때 IEquatable 연산자를 생성할 수 있습니다.You can now generate IEquatable operators when generating .Equals for structs. 값 형식의 Equals 및 GetHashCode 생성을 위한 리팩터링은 이미 있습니다.We already had a refactoring to Generate Equals and GetHashCode for value types. 이제 구조체를 사용하여 IEquatable뿐만 아니라 equals 및 not equals 연산자를 자동으로 추가합니다.Now with structs we will automatically add the IEquatable as well as the equals and not equals operators for you. 구조체 안에 커서를 놓습니다.Place your cursor within the struct. (Ctrl+ . )을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Equals(object) 생성을 선택합니다.Select Generate Equals(object).
Generate IEquatable Operators
IEquatable 연산자 생성Generate IEquatable Operators
  • 이제 사용하지 않는 모든 생성자 매개 변수의 속성 또는 필드를 만들고 할당할 수 있습니다.You can now create and assign properties or fields for all unused constructor parameters. 개별 매개 변수에서 이 작업을 수행할 수 있는 빠른 작업은 이미 있지만 이제는 사용되지 않는 모든 매개 변수에 대해 동시에 이 작업을 수행할 수 있습니다.We already had a quick action that allowed you to do this on an individual parameter, but now you can do it for all unused parameters at once. 나머지 매개 변수 중 하나에 커서를 놓습니다.Place your cursor on any of the remaining parameters. (Ctrl+ . )을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. 속성을 만들고 초기화하려면 나머지를 만들고 속성으로 할당을 선택합니다.To create and initialize properties, select Create and assign remaining as properties. 필드를 만들고 초기화하려면 나머지를 만들고 필드로 할당을 선택합니다.To create and initialize fields, select Create and assign remaining as fields.
Create and Assign Remaining Fields
나머지 필드를 만들고 할당Create and Assign Remaining Fields
Create and Assign Remaining Properties
나머지 속성을 만들고 할당Create and Assign Remaining Properties
  • 이제 DateTime 및 TimeSpan 문자열 리터럴에 IntelliSense 완성이 생겼습니다.There is now IntelliSense completion in DateTime and TimeSpan string literals. DateTime 또는 TimeSpan 문자열 리터럴 내부에 커서를 놓고 (Ctrl+스페이스)를 누릅니다.Place your cursor inside the DateTime or TimeSpan string literal and press (Ctrl+Space). 그러면 완성 옵션과 각 문자의 의미에 대한 설명이 표시됩니다.You will then see completion options and an explanation as to what each character means. 날짜/시간 형식과 예시가 모두 제공됩니다.Both the date time format and an example will be provided.
IntelliSense Completion in DateTime and TimeSpan
DateTime 및 TimeSpan 문자열 리터럴의 IntelliSense 완성IntelliSense Completion in DateTime and TimeSpan string literals
  • 이제 서명 변경 대화 상자 내에서 매개 변수를 추가할 수 있습니다.You can now add a parameter within the Change Signature dialog. 메서드의 서명 안에 커서를 놓습니다.Place your cursor within the method’s signature. (Ctrl+ . )을 눌러 빠른 작업 및 리팩터링 메뉴를 트리거합니다.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. 서명 변경을 선택합니다.Select Change signature. 이제 추가를 선택하여 매개 변수를 추가할 수 있는 다음 대화 상자가 열립니다.The following dialog will open where you can now select Add to add a parameter. 추가를 선택하면 새 매개 변수 추가 대화 상자가 열립니다.Once you select Add, the new Add Parameter dialog will open. 매개 변수 추가 대화 상자를 사용하여 형식 이름과 매개 변수 이름을 추가할 수 있습니다.The Add Parameter dialog allows you to add a type name and a parameter name. 매개 변수를 필수 매개 변수로 설정하거나 기본값을 사용하여 선택적 매개 변수로 설정할 수 있습니다.You can choose to make the parameter required or optional with a default value. 그런 다음 호출 사이트에서 값을 추가하고 해당 값의 명명된 인수를 선택하거나 TODO 변수를 도입할 수 있습니다.You can then add a value at the call site and choose a named argument for that value or you can introduce a TODO variable. TODO 변수는 코드에 TODO를 넣으므로 각 오류를 방문하고 각 호출 사이트를 독립적으로 조사하여 무엇을 전달할지 결정할 수 있습니다.The TODO variable puts a TODO in your code so you can visit each error and go through each call site independently and decide what to pass. 선택적 매개 변수의 경우 호출 사이트를 완전히 생략하는 옵션이 있습니다.For optional parameters you have the option to omit the call site completely.
Change Signature Dialog
서명 변경 대화 상자Change Signature Dialog
Add Parameter Dialog
매개 변수 추가 대화 상자Add Parameter Dialog
  • 이제 분석기 작성자는 NuGet과 함께 분석기를 배송할 때 CompletionProviders를 IntelliSense 완성에 사용할 수 있습니다.Analyzer authors can now use CompletionProviders for IntelliSense completions when shipping their analyzers with NuGet. 이전에는 CompletionProviders를 VSIX에서만 사용할 수 있었기 때문에 라이브러리 작성자는 별도의 VSIX를 만들어야 했습니다.Before, library authors would have to create a separate VSIX since CompletionProviders was only available in VSIX. 이제 라이브러리 작성자는 분석기가 있는 NuGet 패키지에서 IntelliSense 완성을 구현할 수 있으며 별도로 구현할 필요가 없습니다.Now library authors can implement IntelliSense completions in the NuGet package where their analyzers are, and they don’t need to do it separately. NuGet 패키지에서 구현된 완성 공급자는 개별 프로젝트와 관련된 제안 사항도 제공하며 기능을 지원하는 각 IDE에서 자동으로 작동합니다.Completion providers implemented in NuGet packages will also provide suggestions specific to individual projects and will automatically work in each IDE supporting the feature.

RazorRazor

Enable experimental Razor editor(실험적 Razor 편집기 사용) 미리 보기 기능을 선택하여 모든 Razor 파일(.cshtml/.razor)에서 새로운 실험적 LSP(언어 서버 프로토콜) 기반 Razor 편집기를 사용해 보세요.Try out the new experimental Language Server Protocol (LSP) powered Razor editor with all Razor files (.cshtml/.razor) by selecting the Enable experimental Razor editor preview feature.

테스트 탐색기Test Explorer

Run/Debug All Tests In View(보기의 모든 테스트 실행/디버그)가 테스트 탐색기에 추가되었습니다.Run/Debug All Tests In View have been added to the Test Explorer. 해당 명령으로 모든 테스트 실행모든 테스트 디버그 명령이 테스트 편집기에서 표시되던 위치가 바뀝니다.These commands replace where the Run All Tests and Debug All Tests commands appeared in the Test Explorer. 이 변경으로 인해 해당 명령이 테스트 탐색기의 필터를 적용하여 창에 표시된 테스트만 실행합니다.This change clarifies that these commands honor the filters of the Test Explorer so that only tests visible in window are run. 여기에는 열 필터와 검색 상자 필터가 모두 포함됩니다.This includes both column filters and search box filters.

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

Global Run/Debug All(전역 실행/모두 디버그) 명령이 이제 최상위 테스트 메뉴에만 표시됩니다.The Global Run/Debug All commands will now only appear in the top-level Test menu. 해당 명령은 테스트 탐색기 도구 모음이나 테스트 창 보기의 상황에 맞는 메뉴에는 포함되지 않습니다.They are no longer included in the Test Explorer toolbar or context menu of any test window view. 테스트 탐색기에서 트리거되는 경우 모든 테스트에 대한 코드 검사가 이제 테스트 창 보기에도 적용됩니다.When triggered from the Test Explorer, the Analyze Code Coverage for All Tests now applies to the test window views as well.

바로 가기 키:Short-cut Keys:

  • Ctrl R, A - 모든 테스트 실행 - 전역 명령은 항상 모든 테스트를 실행합니다.Ctrl R, A - Run All Test - Global command always runs all tests
  • Ctrl R, V - Run All Tests In View(보기의 모든 테스트 실행) - 테스트 창(테스트 탐색기, 재생 목록, Live Unit Testing 창)이 활성 창인 경우 유효한 명령만 실행합니다.Ctrl R, V - Run All Tests In View - Only a valid command when a test window (Test Explorer, Playlist, Live Unit Testing Window) are active windows
  • Ctrl R, Ctrl A - 모든 테스트 디버그 - 글로벌 명령은 항상 모든 테스트를 실행합니다.Ctrl R, Ctrl A - Debug All Test - Global command always debugs all tests
  • Ctrl R, Ctrl V - Debug All Tests In View(보기의 모든 테스트 디버그) - 테스트 창(테스트 탐색기, 재생 목록, Live Unit Testing 창)이 활성 창인 경우 유효한 명령만 실행합니다.Ctrl R, Ctrl V - Debug All Tests In View - Only a valid command when a test window (Test Explorer, Playlist, Live Unit Testing Window) are active windows

디버거Debugger

네이티브 포인터를 통해 관리형 COM 개체 보기Viewing Managed COM Objects Through Native Pointers

이 기능은 네이티브 포인터에서 참조하는 관리형 COM 개체를 자동으로 디코드하여 지역 창에서 값을 완벽하게 검사할 수 있도록 합니다.This feature automatically decodes managed COM objects referenced by native pointers allowing you to fully inspect values in the Locals window. 자세한 내용은 Visual Studio 블로그에서 확인할 수 있습니다.You can find more details here at the Visual Studio blog.

프로파일러Profiler

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

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

.NET 성능 카운터 도구를 사용하여 Visual Studio 프로파일러 내에서 직접 dotnet 카운터를 시각화합니다.Visualize dotnet counters right from within the Visual Studio Profiler using the .NET Performance Counters Tool. 도구를 사용해 보려면 디버그 -> 성능 프로파일러 -> .NET 성능 카운터 도구 확인 표시로 이동합니다.To try out the tool go to Debug -> Performance Profiler -> Checkmark .NET Performance Counters Tool.

XamarinXamarin

  • Android 레이아웃 파일 사용자에게 흔히 발행하는 문제 유형을 해결하기 위해 코드 수정 도구가 도입되었습니다.Code fixers have been introduced for the most common types of problems experienced by users with Android layout files.
  • 이제 Xamarin.Forms 템플릿 선택 환경이 더 많은 설명이 포함된 새로운 모양으로 개선되었고 플라이아웃 및 탭 템플릿에서 Shell을 활용합니다.The Xamarin.Forms template selection experience now has a fresh and more illustrative look, and the Flyout and Tabbed templates now utilize Shell. 여기에서 Shell에 대해 자세히 알아보세요.Read more about Shell here. Shell을 사용하지 않으려는 경우 빈 템플릿을 사용하세요.If for some reason you don't wish to use Shell, use the Blank template.
New Xamarin.Forms template selection experience
Xamarin.Forms 템플릿 선택Choosing a Xamarin.Forms template

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

XAML 핫 다시 로드:XAML Hot Reload:

  • 앱 내 도구 모음 개선 사항: WPF 및 UWP용 XAML 핫 다시 로드 도구 워크플로의 일부인 앱 내 도구 모음 환경을 한층 더 개선했습니다.In-app Toolbar Improvements: We have further refined the in-app toolbar experience that is part of the XAML Hot Reload tooling workflow for WPF & UWP. 변경 내용으로는 도구 모음이 짧아져 실행 중인 애플리케이션을 더 이상 가리지 않는 것과 축소 메커니즘이 변경되어 클릭 시 XAML 핫 다시 로드 텍스트가 먼저 축소되고 두 번째 클릭 시 도구 모음 전체가 축소되는 것 등이 있습니다.Changes include a shorter toolbar so that it no longer covers the running application, and a change in the collapse mechanism which when clicked will now collapse the XAML Hot Reload text first, then collapse the bar fully on the second click.

XAML 디자이너:XAML Designer:

  • WPF 및 UWP에 대한 확장된 디자인 타임 데이터 지원: 이 릴리스에서는 WPF .NET Core 및 UWP 개발자를 위한 새로운 디자인 타임 데이터 기능을 도입합니다.Expanded Design-time Data Support for WPF & UWP: In this release we are introducing a new design-time data feature for WPF .NET Core and UWP developers. 해당 새 기능은 d: 접두사를 사용하여 액세스할 수 있는 디자인 타임 속성의 현재 목록을 확장합니다.This new capability will extend the current list of accessible design-time properties through the use of the d: prefix. Xamarin.Forms 개발자에게는 친숙한 기능인데, “d:” 접두사를 사용하여 디자인 타임에만 렌더링되어야 하고 실행 중인 앱으로 컴파일되지 않는 속성을 나타내어 디자인 타임 UI 유효성 검사에 매우 안전하게 사용하는 방식을 그대로 제공하기 때문입니다.This feature will be familiar to Xamarin.Forms developers, as it makes available the same approach of using a “d:” prefix to indicate a property that should only be rendered at design-time and never gets compiled into the running app making it very safe to use for design time UI validation. 이 릴리스에서는 WPF 및 UWP의 기본 컨트롤을 모두 지원하며 향후 릴리스에서는 타사 및 사용자 지정 컨트롤을 지원할 계획입니다.In this release we support all the out-of-the-box controls for WPF and UWP and plan to support 3rd party and custom controls in future releases.
  • XAML 디자이너 새로 고침 단추: XAML 디자이너에 새로 고침 단추를 추가했습니다. 이 새 아이콘은 확대/축소 수준 표시기 근처의 왼쪽 아래 아이콘 영역에서 찾을 수 있습니다.XAML Designer Refresh Button: We have added a refresh button to the XAML designer, this new icon can be found in the bottom-left icon area near the zoom level indicator. 이 새로 고침 작업은 디자이너 뷰를 닫은 후 다시 여는 작업(드물지만 렌더링 문제 해결을 위해 필요한 경우)과 동일하게 다시 설정합니다.This refresh action does the equivalent reset of closing the designer view and re-opening it for the rare situations where this is required to resolve a rendering issue. 이 기능은 WPF .NET Core 및 UWP 개발자가 사용할 수 있습니다.This feature is available for WPF .NET Core and UWP developers.

XAML 코드 편집기:XAML Code Editor:

  • 색 시각화 도우미: WPF .NET Core, WPF .NET Framework 및 Xamarin.Froms 프로젝트를 위한 XAML 코드 편집기의 새로운 색 시각화 도우미를 더욱더 개선했습니다.Color Visualizer: We have further refined our new color visualizer in the XAML code editor for WPF .NET Core, WPF .NET Framework and Xamarin.Froms projects. 이번 릴리스에서는 지난 미리 보기에서 지원되지 않던 리소스에서 가져오는 색을 시각화하는 기능이 추가로 지원됩니다.In this release we have added support for visualizing colors coming from resources, which was previously not supported in the last preview.
Inline Color Previews in XAML Code Editor
XAML 코드 편집기의 인라인 색 미리 보기Inline Color Previews in XAML Code Editor

패키지 참조 없이 NuGet 패키지의 도구 상자 항목 표시Show Toolbox items from a NuGet package without having a package reference

대부분의 컨트롤 라이브러리 작성자는 현재 프로젝트에서 라이브러리를 참조하지 않은 경우에도 도구 상자에 컨트롤을 표시하려고 합니다. 그러면 검색 기능을 사용하는 데 도움이 됩니다.Many control library authors want their controls to be seen in the Toolbox even when the current project hasn't referenced the library yet, as this helps with discoverability. WPF .NET Framework SDK에서는 이를 위해 지금까지 레지스트리 항목을 사용했지만 .NET Core에서는 지원되지 않습니다.WPF .NET Framework SDKs have historically accomplished this using registry entries, but this is not supported by .NET Core. WPF .NET Core의 경우 이제 NuGet 대체 폴더의 WPF .NET Core NuGet 패키지 내에 있는 VisualStudioToolsManifest.xml 파일의 컨트롤로 도구 상자를 채울 수 있습니다.For WPF .NET Core, Toolbox can now be populated with controls from VisualStudioToolsManifest.xml files found within WPF .NET Core NuGet packages in NuGet fallback folders. 자세한 내용은 XAML 디자이너 확장성 GitHub 리포지토리의 설명서를 참조하세요.For more details, see the documentation in the XAML Designer Extensibility GitHub repo.

Windows FormsWindows Forms

.NET Core용 Windows Forms 디자이너Windows Forms Designer for .NET Core

이제 .NET Core 프로젝트용 Windows Forms 디자이너를 사용할 수 있습니다.The Windows Forms designer for .NET Core projects is now available. Visual Studio에서 디자이너를 사용하도록 설정하려면 도구 > 옵션 > 환경 > 미리 보기 기능으로 이동하여 .NET Core 앱에 미리 보기 Windows Forms 디자이너 사용 옵션을 선택하세요.To enable the designer in Visual Studio, go to Tools > Options > Environment > Preview Features and select the Use the preview Windows Forms designer for .NET Core apps option.

이 릴리스에서는 다른 개선 사항과 함께 다음 컨트롤이 지원됩니다.In this release the following controls are now supported along with other improvements:

  • UserControl 및 사용자 지정 컨트롤 인프라UserControl and custom controls infrastructure
  • TableLayoutPanelTableLayoutPanel
  • 타사 컨트롤 지원 기본 사항Fundamentals for third-party controls support
  • 데이터 바인딩 지원 기본 사항Fundamentals for data binding support
  • TableLayoutPanel과의 디자이너 상호 작용 개선 사항Improvements in designer interaction with the TableLayoutPanel

버그 수정Bug Fixes

Visual Studio 2019 버전 16.7.0에서 해결된 주요 문제Top Issues Fixed in Visual Studio 2019 version 16.7.0

  • WMI 공급자 구성 요소 설치 실패 오류를 해결했습니다.Fixed WMI Provider component installation failure.
  • 사용자가 막대 아래쪽의 왼쪽 단추를 클릭하여 테스트 실행 진행률을 볼 수 없는 문제를 해결했습니다.Fixed an issue where users were not able to see test run progress by clicking the left button at the bottom of the bar.
  • 사용 가능한 Visual Studio 코드 공간 청구 플랜을 검색하는 성능이 향상되었습니다.Improved performance of discovering available Visual Studio Codespace billing plans.
  • Visual Studio 코드 공간을 만들 때 기본 일시 중단 시간이 30분에서 3시간으로 변경되었습니다.When creating a Visual Studio Codespace, we changed the default suspend time from 30minutes to 3 hours.
  • Git 변경 내용 창이 사용자에게 들어오는 커밋/나가는 커밋이 있음을(실제로 없는 경우) 알리는 버그를 해결합니다.Fix bug where the Git Changes window informs the user they have incoming/outgoing commits, when in fact they have none.
  • 진단 도구 및 성능 프로파일러의 안정성이 개선되었습니다.Improved stability of the Diagnostic Tools and Performance Profiler.
  • 부 버전이 일치하지 않아 Azure Sphere Visual Studio 확장이 자동으로 업데이트되지 않는 문제를 해결했습니다.Addressed an issue where Azure Sphere Visual Studio extension will not be automatically updated due to a minor version mismatch. 해당 문제를 해결하여 Azure Sphere는 VSIX 자동 업데이트 프로그램을 실행할 때 자동으로 업데이트될 수 있습니다.With the fix, Azure Sphere will be able to get automatically updated when the VSIX auto updater runs.

Developer CommunityFrom Developer Community


알려진 문제Known Issues

아래 링크에 따라 Visual Studio 2019에서 알려진 미해결 문제 및 해결 방법을 모두 확인하세요.See all open issues and available workarounds in Visual Studio 2019 by following the below link.


사용자 의견Feedback

많은 의견 부탁드립니다!We would love to hear from you! 문제가 있으면 설치 관리자나 Visual Studio IDE 자체의 오른쪽 위에서 문제 보고 옵션을 통해 알려주세요.For issues, let us know through the Report a Problem option in the upper right-hand corner of either the installer or the Visual Studio IDE itself. ComponentThe Feedback Icon 아이콘은 오른쪽 위 모서리에 있습니다.icon is located in the upper right-hand corner. Visual Studio 개발자 커뮤니티에서 제품에 대해 제안하거나 문제를 추적하고, 질문하고 대답을 찾고 새로운 기능을 제안할 수 있습니다.You can make a product suggestion or track your issues in the Visual Studio Developer Community, where you can ask questions, find answers, and propose new features. 라이브 채팅 지원을 통해 무료 설치 도움말을 가져올 수도 있습니다.You can also get free installation help through our Live Chat support.


블로그Blogs

개발자 도구 블로그 사이트에서 사용 가능한 인사이트 및 권장 사항을 활용하여 모든 새 릴리스에 대한 최신 정보와 다양한 기능에 대한 심층적인 게시물을 확인하세요.Take advantage of the insights and recommendations available in the Developer Tools Blogs site to keep you up-to-date on all new releases and include deep dive posts on a broad range of features.


Visual Studio 2019 릴리스 정보 기록Visual Studio 2019 Release Notes History

이전 버전의 Visual Studio 2019와 관련된 자세한 내용은 Visual Studio 2019 릴리스 정보 기록 페이지를 참조하세요.For more information relating to past versions of Visual Studio 2019, see the Visual Studio 2019 Release Notes History page.


페이지 맨 위

Top of Page