다음을 통해 공유


Visual Studio 아이콘Visual Studio 2017 버전 15.0 릴리스 정보


개발자 커뮤니티 | 시스템 요구 사항 | 호환성 | 배포 가능한 코드 | 사용 조건 | 블로그 | 알려진 문제



참고 항목

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



피드백 및 제안

많은 의견 부탁드립니다! 문제가 있으면 설치 관리자나 Visual Studio IDE 자체의 오른쪽 위에서 문제 보고 옵션을 통해 알려주세요. 피드백 아이콘 아이콘은 오른쪽 위 모서리에 있습니다. Visual Studio 개발자 커뮤니티에서 문제를 추적하고 질문을 하고 대답을 찾을 수 있습니다. 라이브 채팅 지원을 통해 추가 비용을 들이지 않고 설치 도움말을 가져올 수 있습니다.

지원 기간

Visual Studio 2017 버전 15.0의 Enterprise 및 Professional 사용자가 지원되며 2020년 1월까지 보안 취약점에 대한 수정 사항을 받게 됩니다. 이 시간은 2018년 10월에 Visual Studio 2017 버전 15.9가 Visual Studio 2017 제품의 차기 서비스 기준으로 지정되었다는 사실에 따라 결정되었습니다. my.visualstudio.com의 다운로드 섹션에서 가장 안전한 최신 버전의 Visual Studio 2017을 다운로드할 수 있습니다.  Visual Studio에서 지원 기준에 대한 자세한 내용은 Visual Studio 2017 지원 정책을 참조하세요. 

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


릴리스 기록


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.102)

릴리스 날짜: 2019년 12월 11일

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2019-1349 하위 모듈 이름의 너무 느슨한 제한으로 인한 Visual Studio 원격 실행 취약성 관련 Git

Git에서 형제 하위 모듈 디렉터리의 하위 모듈 이름 충돌이 발생할 경우 원격 코드 실행 취약성이 존재합니다. 이 취약성을 성공적으로 악용한 공격자는 대상 머신에서 코드를 원격으로 실행할 수 있습니다. 보안 업데이트는 하위 모듈 클론의 디렉터리를 비워 두도록 요구하는 새 버전의 Windows용 Git을 사용하여 취약성을 해결합니다.

CVE-2019-1350 명령줄 인수의 잘못된 따옴표 넣기로 인한 Visual Studio 원격 실행 취약성 관련 Git

Git에서 SSH URL과 함께 재귀 클론을 사용하는 동안 특정 따옴표가 있는 명령줄 인수를 해석할 때 원격 코드 실행 취약성이 존재합니다. 이 취약성을 성공적으로 악용한 공격자는 대상 머신에서 코드를 원격으로 실행할 수 있습니다. 보안 업데이트는 이 문제를 해결하는 새 버전의 Windows용 Git을 사용하여 취약성을 해결합니다.

CVE-2019-1351 복제 중 문자 아닌 드라이브 이름 사용으로 인한 Visual Studio 임의 파일 덮어쓰기 취약성 관련 Git

문자가 아닌 드라이브 이름이 git clone의 안전 검사를 무시하는 경우 Git에 임의 파일 덮어쓰기 취약성이 존재합니다. 이 취약성을 성공적으로 악용한 공격자는 대상 머신의 임의 파일에 쓸 수 있습니다. 보안 업데이트는 이 문제를 해결하는 새 버전의 Windows용 Git을 사용하여 취약성을 해결합니다.

CVE-2019-1352 NTFS 대체 데이터 스트림 인식 불가로 인한 Visual Studio 원격 실행 취약성 관련 Git

NTFS 대체 데이터 스트림을 통해 .git/ 디렉터리를 복제하고 이 디렉터리에 쓸 때 Git에 원격 코드 실행 취약성이 존재합니다. 이 취약성을 성공적으로 악용한 공격자는 대상 머신에서 코드를 원격으로 실행할 수 있습니다. 보안 업데이트는 NTFS 대체 데이터 스트림을 인식하도록 지정된 새 버전의 Windows용 Git을 사용하여 취약성을 해결합니다.

CVE-2019-1354 백슬래시가 포함된 추적 파일 작성 허용으로 인한 Visual Studio 임의 파일 덮어쓰기 취약성 관련 Git

백슬래시와 악의적인 symlink가 있는 트리 항목이 작업 트리를 벗어날 수 있는 경우 Git에 임의 파일 덮어쓰기 취약성이 존재합니다. 이 취약성을 성공적으로 악용한 공격자는 대상 머신의 임의 파일에 쓸 수 있습니다. 보안 업데이트는 이러한 백슬래시 사용을 허용하지 않는 새 버전의 Windows용 Git을 사용하여 취약성을 해결합니다.

CVE-2019-1387 재귀 클론에서 하위 모듈 이름의 너무 느슨한 유효성 검사로 인한 Visual Studio 원격 실행 취약성 관련 Git

하위 모듈을 재귀적으로 복제할 때 Git에 원격 코드 실행 취약성이 있습니다. 이 취약성을 성공적으로 악용한 공격자는 대상 머신에서 코드를 원격으로 실행할 수 있습니다. 보안 업데이트는 하위 모듈 이름의 유효성 검사를 엄격히 수행하는 새 버전의 Windows용 Git을 사용하여 취약성을 해결합니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.98)

릴리스 날짜: 2019년 9월 10일

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2019-1232 진단 허브 표준 수집기 서비스 권한 상승 취약성

진단 허브 표준 수집기 서비스가 특정 파일 작업을 잘못 가장하는 경우 권한 상승 취약성이 존재합니다. 이 취약성을 성공적으로 악용한 공격자가 상승된 권한을 얻을 수 있습니다. 취약한 시스템에 대한 권한 없는 액세스 권한이 있는 공격자는 이 취약성을 악용할 수 있습니다. 보안 업데이트는 진단 허브 표준 수집기 서비스가 파일 작업을 적절하게 가장하도록 하여 취약성을 해결합니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.96)

릴리스 날짜: 2019년 8월 13일

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2019-1211 Git for Visual Studio 권한 상승 취약성

구성 파일을 부적절하게 구문 분석할 때 Git for Visual Studio에 권한 상승 취약성이 존재합니다. 취약성을 이용할 줄 아는 공격자는 또 다른 로컬 사용자의 컨텍스트에서 코드를 실행할 수 있습니다. 인증된 공격자는 취약성을 악용하기 위해 애플리케이션 전체를 설치하기 전에 시스템에서 Git 구성 파일을 수정해야 합니다. 그런 다음 공격자는 시스템의 다른 사용자가 특정 Git 명령을 실행하도록 유도해야 합니다. 업데이트에서는 구성 파일을 편집하는 데 필요한 권한을 변경하여 문제를 해결합니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.92)

릴리스 날짜: 2019년 7월 9일

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2019-1113 WorkflowDesigner XOML deserialization에서 코드 실행 허용

특정 형식을 참조하는 XOML 파일로 인해 Visual Studio에서 XOML 파일을 열 때 임의 코드가 실행될 수 있습니다. 이제 XOML 파일에서 사용할 수 있는 형식에 대한 제한이 있게 됩니다. 권한이 없는 새 형식 중 하나를 포함하는 XOML 파일을 열면 형식에 권한이 없음을 설명하는 메시지가 표시됩니다.

자세한 내용은 XOML 문서를 참조하세요.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.88)

릴리스 날짜: 2019년 6월 11일

이번 릴리스에서 수정된 문제


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.84)

릴리스 날짜: 2019년 5월 14일

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2019-0727 진단 허브 표준 수집기 서비스 권한 상승 취약성

진단 허브 표준 수집기 서비스가 특정 파일 작업을 잘못 수행하는 경우 권한 상승 취약성이 존재합니다. 이 취약성을 성공적으로 악용한 공격자는 임의의 위치에서 파일을 삭제할 수 있습니다. 이 취약성을 악용하려면 공격자가 취약한 시스템에 대한 권한 없는 액세스 권한이 있어야 합니다. 보안 업데이트는 진단 허브 표준 수집기가 파일 작업을 수행하는 위치를 보호하여 취약성을 해결합니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.76)

릴리스 날짜: 2019년 3월 12일

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2019-9197 Unity Editor 원격 코드 실행 취약성

Visual Studio가 Unity를 사용한 게임 개발 워크로드의 일부로 설치하는 타사 소프트웨어인 Unity Editor에는 원격 코드 실행 취약성이 있습니다. Visual Studio에서 Unity를 설치한 경우, CVE에 설명된 대로 취약성을 해결하는 버전으로 사용 중인 Unity 버전을 업데이트해야 합니다. Visual Studio 설치 관리자가 취약성을 해결하는 Unity Editor 버전을 설치하도록 업데이트되었습니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.73)

릴리스 날짜: 2019년 2월 12일

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2019-0613 WorkflowDesigner XOML deserialization에서 코드 실행 허용

특정 형식을 참조하는 XOML 파일로 인해 Visual Studio에서 XOML 파일을 열 때 임의 코드가 실행될 수 있습니다. 이제 XOML 파일에서 사용할 수 있는 형식에 대한 제한이 있게 됩니다. 권한이 없는 새 형식 중 하나를 포함하는 XOML 파일을 열면 형식에 권한이 없음을 설명하는 메시지가 표시됩니다.

자세한 내용은 https://support.microsoft.com/help/4512190/remote-code-execution-vulnerability-if-types-are-specified-in-xoml을 참조하세요.

CVE-2019-0657 .NET Framework 및 Visual Studio 스푸핑 취약성

.NET Core 업데이트가 현재 릴리스되어 이 Visual Studio 업데이트에 포함됩니다. 이 릴리스에서는 보안 및 기타 중요한 문제를 해결합니다. 세부 정보는 .NET Core 릴리스 정보에서 확인할 수 있습니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.64)

릴리스 날짜: 2018년 12월 11일

이번 릴리스에서 수정된 문제

  • 프로젝트 이름 또는 리포지토리 이름에 공백이 있는 Azure DevOps 사용자는 팀 탐색기에서 복제하거나 게시할 때 오류가 발생합니다.

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2018-8599 진단 허브 표준 수집기 서비스 권한 상승 취약성

진단 허브 표준 수집기 서비스가 특정 파일 작업을 잘못 처리하는 경우 권한 상승 취약성이 존재합니다. 이 취약성을 성공적으로 악용한 공격자가 상승된 권한을 얻을 수 있습니다. 이 취약성을 악용하려면 공격자가 취약한 시스템에 대한 권한 없는 액세스 권한이 있어야 합니다. 보안 업데이트는 진단 허브 표준 수집기 서비스가 파일 작업을 적절하게 가장하도록 하여 취약성을 해결합니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.57)

릴리스 날짜: 2018년 10월 10일

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2018-8292 .NET Core 정보 공개 취약성

HTTP 인증 정보가 HTTP 리디렉션이 발생하는 아웃바운드 요청에 실수로 노출된 경우 .NET Core에서 보안 기능 바이패스 취약성이 발생하게 됩니다. 이 취약성을 악용하는 공격자는 이 정보를 사용하여 웹 애플리케이션을 추가로 손상시킬 수 있습니다. 보안 업데이트는 .NET Core 애플리케이션이 HTTP 리디렉션을 처리하는 방법을 수정하여 취약성을 해결합니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.52)

릴리스 날짜: 2018년 8월 28일

이번 릴리스에서 수정된 문제


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.49)

릴리스 날짜: 2018년 8월 14일

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2018-0952 진단 허브 표준 수집기 권한 상승 취약성

Visual Studio 서비스에는 권한 상승 취약성이 있으며, 이로 인해 파일을 쓸 때 관리자가 아닌 사용자가 시스템 권한을 가질 수 있습니다. 이를 활용하는 공격자는 사용자 수준 액세스 권한만 있는 상태에서 시스템으로 파일을 작성할 수 있습니다. 이 보안 업데이트는 현재 사용자로 가장하여 파일 위치에 대한 액세스의 유효성을 검사하여 이 문제를 해결합니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.46)

2018년 8월 2일 릴리스

이 릴리스의 업데이트 요약

  • 이 릴리스는 현재 Java™ Development Kit 8, 업데이트 181(JDK 버전 8u181)을 설치합니다.

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2018-8356 .NET Core 보안 기능 우회 취약성

Microsoft는 .NET Core에서 인증서의 유효성을 올바르게 확인하지 않는 경우 존재하는 보안 기능 우회 취약점을 알고 있습니다. 이 취약점을 악용하는 공격자는 인증서를 요구하는 경우 만료된 인증서를 내보일 수 있습니다. 업데이트를 통해 .NET Core에서 인증서 유효성 검사를 처리하는 방법을 수정하여 취약점을 해결합니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.43)

릴리스 날짜: 2018년 7월 10일

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2018-8172 Visual Studio 원격 코드 실행 취약성

특별히 구성된 프로젝트 또는 리소스 파일을 열어 사용자 컴퓨터의 악용으로 이어질 수 있는 원격 코드 실행 취약성입니다. 보안 업데이트는 Visual Studio에서 파일의 원본 태그를 확인하는 방법을 수정하여 취약성을 해결합니다.

CVE-2018-8260 .NET Framework 원격 코드 실행 취약성

원격 코드 실행 취약성은 공격자가 현재 사용자의 컨텍스트에서 임의 코드를 실행하도록 허용하여 사용자 컴퓨터의 악용으로 이어질 수 있는 .NET 소프트웨어에 존재합니다. 보안 업데이트는 .NET에서 파일의 원본 태그를 확인하는 방법을 수정하여 취약성을 해결합니다.

CVE-2018-8232 .NET Microsoft Macro Assembler 변조 취약성

Microsoft Macro Assembler 부적절한 코드 유효성 검사와 관련된 변조 취약성입니다. 보안 업데이트는 Microsoft Macro Assembler에서 코드 논리의 유효성을 올바르게 검사하여 취약성을 해결합니다.

CVE-2018-8171 ASP.NET Core 보안 기능 우회 취약성

ASP.NET Core 보안 기능 우회 취약성은 공격자의 무한 인증 시도로 이어질 수 있는 잘못된 로그인 시도 횟수의 유효성이 검사되지 않는 경우 존재합니다. 업데이트는 잘못된 로그인 시도 횟수의 유효성을 검사하여 취약성을 해결합니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.37)

릴리스 날짜: 2018년 5월 31일

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2018-11235 Git 보안 취약성에 대한 Microsoft 보안 권고

Git 커뮤니티에 공개된 Git 보안 취약성을 해결했습니다. 취약성으로 인해 사용자가 악성 리포지토리를 복제할 때 임의의 코드가 실행될 수 있습니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.31)

릴리스 날짜: 2018년 4월 26일

이 릴리스의 업데이트 요약

  • Java™ Development Kit 8, 업데이트 172(JDK 버전 8u172)까지 지원합니다.

릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.30)

릴리스 날짜: 2018년 4월 10일

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2018-1037 Microsoft Visual Studio 정보 공개 취약성에 대한 Microsoft 보안 권고

Visual Studio에서 PDB(프로그램 데이터베이스) 파일을 컴파일하는 동안 초기화되지 않은 메모리의 제한된 콘텐츠를 잘못 공개하는 경우 정보 공개 취약성이 존재합니다. 이 정보 공개를 활용하는 공격자는 PDB 파일을 컴파일하는 데 사용되는 Visual Studio 인스턴스에서 초기화되지 않은 메모리를 볼 수 있습니다.

취약성을 활용하려면 공격자가 취약한 버전의 Visual Studio를 사용하여 만든 영향을 받는 PDB 파일에 액세스해야 합니다. 공격자는 개발자가 이 정보 공개를 강제로 생성하도록 할 방법이 없습니다.

보안 업데이트는 프로젝트가 컴파일될 때 PDB 파일이 생성되는 방법을 수정하여 취약성을 해결합니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.29)

릴리스 날짜: 2018년 3월 13일

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2018-0875 .NET Core용 Microsoft 보안 권고

Microsoft는 악의적인 파일이나 웹 요청이 DoS(Denial of Service) 공격을 유발할 수 있다는 .NET Core 공개 버전의 보안 취약점을 알고 있습니다.

  • 시스템 관리자는 .NET Core 런타임을 버전 1.0.10, 1.1.7 및 2.0.6으로 업데이트하는 것이 좋습니다. 개발자는 .NET Core SDK를 버전 1.1.8 또는 2.1.101으로 업데이트하는 것이 좋습니다.

릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.26)

릴리스 날짜: 2018년 2월 21일

이 릴리스의 업데이트 요약

팀 탐색기는 TLSv1.2를 지원합니다. Visual Studio에서 제공되는 Git 및 Git 자격 증명 관리자 구성 요소를 업데이트했습니다. 선택적 Windows용 Git 구성 요소도 업데이트되었습니다. 이 업데이트를 사용하면 Git에서 사용되지 않는 TLSv1 및 TLSv1.1에 대한 지원 대신 TLSv1.2를 지원하는 서비스에 연결할 수 있습니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.23)

릴리스 날짜: 2018년 2월 2일

이 릴리스의 업데이트 요약

  • MSVC 컴파일러가 Spectre variant 1의 인스턴스를 감지하면 자동으로 추론 장벽을 삽입하는 /Qspectre 스위치를 지원하도록 업데이트되었습니다. /Qspectre에 대한 자세한 내용은 Visual C++ 팀 블로그를 참조하세요.
  • JDK를 8u161로 업그레이드하여 다운로드 오류를 수정했습니다.

릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.21)

릴리스 날짜: 2018월 1월 9일

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2018-0786 X509 인증서 유효성 검사의 보안 기능 우회

Microsoft는 이 보안 권고를 릴리스하여 .NET Core 1.0, 1.1 및 2.0.의 공용 버전에 있는 취약성에 대한 정보를 제공합니다. 이 권고는 또한 개발자가 자신의 애플리케이션을 올바르게 업데이트하기 위해 수행할 수 있는 지침을 제공합니다. 이 보안 권고는 UWP용 .NET 네이티브에도 적용됩니다.

Microsoft는 공격자가 특정 사용에 대해 잘못 표시된 인증서를 제공할 수 있으나 구성 요소에서 이를 해당 용도로 사용하는 .NET Core 공용 버전의 보안 취약성을 알고 있습니다. 이 작업은 확장된 키 사용 태깅을 무시합니다.

보안 업데이트는 .NET Core 구성 요소가 인증서의 유효성을 완전히 검사함으로써 취약점을 해결합니다. 시스템 관리자는 .NET Core 런타임을 버전 1.0.9, 1.1.6 및 2.0.5로 업데이트하는 것이 좋습니다. 개발자는 .NET Core SDK를 버전 2.1.4 또는 1.1.7로 업데이트하는 것이 좋습니다.

CVE-2018-0764 XML 문서를 구문 분석 시 서비스 거부

Microsoft는 이 보안 권고를 릴리스하여 .NET Core 1.0, 1.1 및 2.0.의 공용 버전에 있는 취약성에 대한 정보를 제공합니다. 이 권고는 또한 개발자가 자신의 애플리케이션을 올바르게 업데이트하기 위해 수행할 수 있는 지침을 제공합니다.

Microsoft는 .NET Core의 모든 공용 버전에서 잘못된 XML 문서 처리로 인한 서비스 거부 취약점에 대해 알고 있습니다. 이 취약점을 악용하는 공격자는 .NET 애플리케이션에 대한 서비스 거부로 이어질 수 있습니다. 인증되지 않은 원격 공격자가 .NET Core 애플리케이션에 특별히 구성된 요청을 발행하여 이 취약점을 악용할 수 있습니다.

업데이트는 .NET Core에서 XML 문서를 처리하는 방법을 수정하여 취약점을 해결합니다. 시스템 관리자는 .NET Core 런타임을 버전 1.0.9, 1.1.6 및 2.0.5로 업데이트하는 것이 좋습니다. 개발자는 .NET Core SDK를 버전 2.1.4 또는 1.1.7로 업데이트하는 것이 좋습니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.18)

릴리스 날짜: 2017년 12월 6일

Visual Studio 2017 버전 15.0 보안 권고 알림

Microsoft는 ASP.NET Core에 대한 보안 권고를 릴리스했습니다. 자세한 내용은 ASP.NET Core 리포지토리에 있는 해당 공지 사항에서 확인할 수 있습니다. 다음 정보를 확인하세요.

CVE-2017-8700 CORS 바이패스로 정보 유출 가능

ASP.NET 코어 1.0 및 1.1에는 CORS(Cross-Origin Resource Sharing)를 우회하여 정보 유출로 이어질 수 있는 보안 취약성이 있습니다. ASP.NET Core 1.0 및 ASP.NET Core 1.1로 만든 새로운 프로젝트는 이제 위의 보안 업데이트가 포함된 패키지 버전을 사용합니다. 기존 프로젝트의 경우 사용자는 NuGet 패키지 관리 대화 상자를 사용하여 패키지를 최신 버전으로 업데이트 할 수 있습니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.17)

릴리스 날짜: 2017년 11월 14일

Visual Studio 2017 버전 15.0 보안 권고 알림

Microsoft는 .NET Core 및 ASP.NET Core에 대한 보안 권고를 릴리스했습니다. 자세한 내용은 .NET CoreASP.NET Core 리포지토리에 있는 해당 공지 사항에서 확인할 수 있습니다. 다음 정보를 확인하세요.

CVE-2017-8585 형식이 잘못된 인증서로 인해 서비스 거부가 발생할 수 있음

.NET Core 1.0, 1.1 및 2.0에는 잘못된 형식의 인증서 또는 기타 ASN.1 형식의 데이터로 인해 Linux 및 macOS의 무한 루프를 통해 서비스 거부가 발생할 수있는 보안 취약성이 있습니다. 시스템 관리자는 .NET Core 런타임을 버전 1.0.8, 1.1.5 및 2.0.1로 업데이트하는 것이 좋습니다. 개발자는 .NET Core SDK를 버전 2.0.3 또는 1.1.5로 업데이트하는 것이 좋습니다.

CVE-2017-8700 CORS 바이패스로 정보 유출 가능

ASP.NET 코어 1.0 및 1.1에는 CORS(Cross-Origin Resource Sharing)를 우회하여 정보 유출로 이어질 수 있는 보안 취약성이 있습니다.

CVE-2017-11879 오픈 리디렉션으로 권한 상승이 발생할 수 있습니다

오픈 리디렉션이 존재하는 ASP.NET Core 2.0에는 권한 상승으로 이어질 수 있는 보안 취약성이 있습니다.

CVE-2017-11770 서비스 거부 취약성

잘못된 요청으로 인해 서비스 거부가 발생할 수있는 Windows Http.Sys를 통해 애플리케이션을 호스팅할 때 ASP.NET Core 1.0, 1.1 및 2.0에 보안 취약성이 있습니다. ASP.NET Core 1.0 및 ASP.NET Core 1.1로 만든 새로운 프로젝트는 이제 위의 보안 업데이트가 포함된 패키지 버전을 사용합니다. 기존 프로젝트의 경우 사용자는 NuGet 패키지 관리 대화 상자를 사용하여 패키지를 최신 버전으로 업데이트 할 수 있습니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.16)

릴리스 날짜: 2017년 9월 18일

이번 릴리스에서 수정된 문제


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.13)

릴리스 날짜: 2017년 5월 23일

이번 릴리스에서 수정된 문제

오프라인 설치 시나리오에는 더 이상 인터넷 액세스가 필요하지 않습니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.12)

릴리스 날짜: 2017년 3월 31일

이 릴리스의 업데이트 요약

이제 Visual Studio 2017용 Xamarin.VS 확장에서 Xcode 8.3, iOS 10.3, watchOS 3.2 및 tvOS 10.2 도구와 API를 지원합니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.10)

릴리스 날짜: 2017년 3월 28일

이번 릴리스에서 수정된 문제

다음은 고객이 신고한 문제 중 빌드 26228.10에서 해결된 문제입니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.09)

릴리스 날짜: 2017년 3월 14일

이번 릴리스에서 수정된 문제

다음은 고객이 보고한 문제 중 빌드 26228.09에서 해결된 문제입니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0(26228.04)

릴리스 날짜: 2017년 3월 7일

이 릴리스의 업데이트 요약

개발: 빠르게 코드 탐색, 작성, 수정

  • 새로운 설치 환경은 더욱 빠르고 다양한 사용자 지정 설치에 적합하도록 최소 공간을 줄였으며, 오프라인 설치를 지원합니다.
  • Visual Studio IDE는 시작 및 솔루션 로드 시간 단축, 로그인 및 ID 개선, 향상된 코드 탐색, 폴더 뷰 열기, 연결된 서비스 등 Visual Studio 2017의 광범위한 향상 기능을 제공하여 온-프레미스 또는 클라우드의 서비스와 앱을 연결할 수 있도록 합니다.
  • Visual C++ 2015와 2017 간에는 크게 달라진 점이 없습니다. C++ 14 규칙 수준, CMake 지원, 빌드 처리량 및 편집기의 생산성이 향상되었습니다.
  • C# 및 Visual Basic에서는 새로운 C# 7.0 및 Visual Basic 15 언어 기능에 대한 지원이 확장되고 하나의 동작으로 소스 코드를 구성할 수 있는 새로운 리팩터링이 도입되었습니다.
  • F#은 F# 4.1 언어에 대한 지원, F# 컴파일러 및 FSharp.Core의 향상된 기능 및 Roslyn 작업 영역을 기반으로 한 새 편집기를 지원합니다.
  • JavaScript 및 TypeScript에는 Visual Studio의 모든 TypeScript 프로젝트에서 사용할 수 있는 TypeScript 2.1이 제공됩니다. 새로운 JavaScript 언어 서비스가 제공되며 기본적으로 활성화됩니다.

디버그: 간단하게 디버그, 프로파일링 및 진단

디버깅 및 진단 기능으로 예외 도우미로 자세히 조사하고, 실행하려면 클릭을 통해 코드를 빠르게 탐색할 수 있습니다. 또한 진단 도구 창의 애플리케이션 이벤트 요약 및 CPU 도구에 여러 향상된 기능이 새로 추가되었습니다.

테스트: 포괄적인 테스트 도구를 사용하여 고품질 코드 작성

  • Live Unit Testing으로 이제 편집기에서 유닛 테스트 결과 및 코드 검사를 실시간으로 시각화할 수 있습니다.
  • 테스트 도구는 테스트 탐색기를 사용하여 테스트 사례 작업 항목에 자동화를 연결합니다.

공동 작업: 버전 제어 사용, 민첩하게 대처, 효율적으로 공동 작업

  • 팀 탐색기의 새로운 Git 기능 및 업데이트된 연결 환경에서는 Visual Studio 2017에서 Git을 사용하여 더 많은 작업을 수행하고, 연결하려는 프로젝트 및 리포지토리를 쉽게 찾을 수 있습니다.
  • 향상된 Visual Studio 피드백 워크플로에서는 보다 협력적인 문제 보고 기능을 제공합니다. 검색하고, 팔로우하고, 응답하여 모든 피드백에 대한 최신 업데이트를 받을 수 있습니다.

확장: 고유한 확장을 빌드하여 기호에 맞게 사용자 지정

  • Visual Studio 확장: 고유한 확장을 빌드하여 기호에 맞게 Visual Studio를 사용자 지정할 수 있습니다.
  • 프로젝트 및 항목 템플릿의 검색 기능: 템플릿 검색 성능을 개선하기 위해 Visual Studio에서 프로젝트 및 항목 템플릿을 사용하는 방식이 크게 변경되었습니다.

장착: 도구를 활용하여 생산성 향상 및 새로운 기능 탐색

  • .NET Core 및 ASP.NET Core: 새로운 MSBuild 기반 .NET Core 도구의 1.0 최종 릴리스가 포함되어 있습니다. Visual Studio 2017을 사용하여 .NET Standard 라이브러리, .NET Core 앱/라이브러리, 새로운 csproj 형식을 사용하는 ASP.NET 웹 프로젝트를 만들 수 있습니다.
  • 유니버설 Windows 앱 개발 도구: 업데이트에는 새로운 버전의 .NET 네이티브 도구 체인, .NET Core NuGet 프레임워크, 새로운 생산성 도구 및 Windows 10 "크리에이터 업데이트" SDK에 대한 지원이 포함되어 있습니다.
  • Xamarin: Xamarin 4.3에서는 tvOS에 대한 지원이 추가되었으며 iOS 자산 카탈로그 지원 및 XML 편집 환경도 개선되었습니다.
  • Visual Studio Tools for Apache Cordova: 브라우저 기반의 새 시뮬레이터로 코딩을 빠르게 작성하고 결과를 즉시 확인할 수 있습니다.
  • Visual Studio용 Node.js 도구: 업데이트는 안정성, 성능 및 전반적인 제품 품질에 중점을 두고 있습니다.
  • Visual Studio Tools for Unity: 이제 새로운 Visual Studio 설치 관리자에서 "Unity를 사용한 게임 개발" 작업을 통해 Visual Studio Tools for Unity 3을 사용할 수 있습니다.
  • Redgate 데이터 도구: DevOps 기능을 SQL 데이터베이스 개발로 확장하기 위해 이제 Visual Studio에 Redgate ReadyRoll Core, SQL 검색 및 SQL Prompt Core로 구성된 Redgate 데이터 도구가 포함되어 있습니다.
  • NuGet - 이제 NuGet에서 전이적 패키지 참조의 고급 기능을 유지하는 동시에 패키지 종속성 정보를 직접 프로젝트 파일에 패키지 참조로 저장하는 기능을 지원합니다.
  • XAML 앱용 도구: 이제 XAML 런타임 도구 모음을 통해 포커스를 추적할 수 있습니다. XAML 편집하며 계속하기, XAML 편집기의 향상된 기능 및 성능 최적화를 통해 XAML 생산성이 향상되었습니다.
  • Data Tools 및 SQL Server: SQL Server Data Tools의 최신 업데이트에서는 Azure SQL Database 및 SQL Server 2016의 최신 기능이 지원됩니다.
  • 개발자 분석 도구: Visual Studio 2017에는 Visual Studio의 Application Insights 및 HockeyApp 기능에 대한 많은 향상된 기능과 개발자 분석 도구 v8.6이 포함되어 있습니다.
  • Visual Studio용 Office 개발자 도구: 최신 기능과 업데이트를 제공하는 Office 개발자 도구가 포함되어 있습니다.
  • 라이브 아키텍처 종속성 유효성 검사: 종속성 유효성 검사 다이어그램(즉, 레이어 다이어그램)의 실시간 알림.
  • 개발자 명령 프롬프트: 새로운 설치 환경을 지원하도록 스크립트가 리팩터링되었습니다.
  • .NET용 Azure SDK: 이제 새로운 Visual Studio 설치 관리자에서 사용할 수 있습니다.

15.0의 새로운 기능에 대한 자세한 정보(26228.04)

이 릴리스 아이콘의 새로운 기능 Visual Studio 2017 버전 15.0(26228.04) 세부 정보

릴리스 날짜: 2017년 3월 7일

설치 환경

처음부터 새로 디자인된 새로운 설치 관리자를 소개합니다.

  • Visual Studio의 최소 설치 공간이 줄어들었습니다.
  • 시스템에 대한 영향 없이 보다 신속하게 설치하고 깔끔하게 제거할 수 있습니다.
  • 필요한 기능만 보다 쉽게 선택하여 설치할 수 있습니다.

Visual Studio 2017을 처음 설치할 때 새로운 환경을 볼 수 있습니다(그림 1).

Visual Studio 2017의 새로운 설치 환경
(그림 1)Visual Studio 2017의 새로운 설치 환경

최소 설치는 크기가 몇백 MB에 불과하지만, 여전히 소스 코드 제어를 비롯한 20개가 넘는 언어에 대한 기본 코드 편집 지원 기능이 포함되어 있습니다. 대부분의 사용자는 더 많은 기능을 설치하려고 합니다. 이제, .NET 데스크톱 개발에서 Unity를 사용한 게임 개발에 이르기까지 모든 것을 아우르는 공통 프레임워크, 언어 및 플랫폼을 나타내는 '워크로드'를 하나 이상 추가할 수 있습니다.

Visual Studio를 업데이트하는 방법

Visual Studio를 업데이트하려면 Visual Studio 설치 관리자를 실행하고 업데이트 단추를 클릭합니다.

새로운 설치 관리자에 대한 피드백

제목 표시줄의 오른쪽 위에 있는 새로운 설치 관리자 클라이언트에서 문제 보고제안하기 명령을 사용하여 문제를 보고하거나 칭찬할 수 있습니다. 설치, 제거 또는 설치 수정 시 오류가 발생하는지, 설치 시간이 비정상적인지(예: 일시 중단) 또는 예기치 않은 오류 메시지가 표시되는지 알고 싶습니다.

오프라인 설치 및 새로운 명령줄 설치 지원을 위한 레이아웃 만들기

시스템 관리자 및 다른 사용자는 이제 인터넷에 액세스하지 않아도 제품을 설치하는 데 필요한 모든 콘텐츠가 포함된 Visual Studio의 오프라인 레이아웃을 만들 수 있습니다. 이 레이아웃은 전체 제품, 워크로드 및/또는 구성 요소 일부, 하나 이상의 제품 로캘일 수 있습니다. 오프라인 레이아웃을 만들려면 인터넷에 연결되어야 합니다. 자세한 내용은 Visual Studio 2017 오프라인 설치를 참조하세요.

설치 애칭

이제 Visual Studio Enterprise와 Community(다른 제품 중에서)는 동일한 컴퓨터에 병렬 설치할 수 있습니다. 이러한 설치 확인을 더 간단히 하기 위해 짧은 이름이나 "애칭"을 지정할 수 있습니다. 예를 들어 Visual Studio Enterprise를 설치한 후 Community를 설치한 경우 시작 메뉴에 둘 다 동일하게 표시됩니다. 두 번째로 설치한 버전에 "community"와 같은 애칭을 지정할 수 있습니다. 그러면 시작 메뉴 항목이 "Visual Studio 2017(community)" 및 "Visual Studio 2017(community)용 개발자 명령 프롬프트"와 같은 이름으로 표시됩니다.

Visual Studio IDE

IDE 기능 향상

  • Visual Studio는 시작 시간과 솔루션 로드 시간을 줄이는 데 최적화되었습니다. Visual Studio가 맨 처음 시작할 때 속도가 최소 50% 더 빠릅니다.
  • 이제 Visual Studio는 시작, 솔루션 로드 또는 편집에 영향을 주는 확장 성능을 모니터링합니다. IDE의 알림 표시줄을 통해 확장 기능의 잘못된 수행에 대한 경고가 표시됩니다. 새로운 성능 센터(도움말 > Visual Studio 성능 관리를 통해 사용 가능)에서는 성능에 영향을 주는 확장 기능을 볼 수 있을 뿐만 아니라, 시작 성능에 영향을 주는 도구 창을 검색하여 시작 로드 동작을 변경할 수 있습니다.
  • 새로운 Visual Studio 설치 관리자에서 Visual Studio용 GitHub 확장을 선택할 수 있습니다.
  • Visual Studio 외부의 분기를 전환할 때 성능 향상을 지원하기 위해 모든 프로젝트 다시 로드가 솔루션 다시 로드로 대체되었습니다. Git 명령줄을 사용하여 분기를 전환할 때 성능 향상을 최대화하기 위해 분기가 전환된 후 솔루션 다시 로드를 선택합니다.
  • .NET Core 및 ASP.NET Core 프로젝트의 파일 와일드카드 사용 기능이 강화되었습니다. 자세한 내용은 프로젝트 파일 와일드카드 사용을 참조하세요.
  • 이제 복제한 후 자동으로 리포지토리의 폴더 보기로 연결됩니다. 솔루션 탐색기에서 파일을 보거나 새 솔루션 선택 목록으로 솔루션을 열 수 있습니다.
  • VSHub를 대체할 새로운 외부 서비스 호스트가 도입되고 있습니다. 이 새로운 서비스 호스트는 외부 프로세스이며 작업 관리자에서 ServiceHub.Host.Node.x86.exe뿐만 아니라 ServiceHub.Host.CLR.*.exe로 나타납니다. 궁극적으로 이 호스트는 VSHub로 유입된 localhost http 트래픽을 제거하기 때문에 Fiddler 사용자가 보고한 노이즈가 완화될 것입니다.
  • 시험판 라이선스 만료 메시지에서 현재 라이선스 상태를 더 명확하게 전달합니다.
  • 계정 설정 대화 상자에서 화면 읽기 프로그램에 더 쉽게 액세스할 수 있습니다.
  • 이제 Visual Studio 설치 관리자에서 도움말 뷰어 구성 요소를 설치하여 오프라인 도움말을 사용할 수 있습니다.
  • 이제 Visual Studio 설치 관리자의 언어 팩 탭에서 언제든지 여러 사용자 인터페이스 언어를 추가하고 제거할 수 있습니다. 도구 > 옵션 > 국가별 설정을 사용하여 설치된 언어 중에서 현재 사용자 인터페이스 언어를 선택할 수 있습니다.
  • 버전 제어 상태 표시줄 때문에 로컬 리포지토리를 SCC 호스트에 게시하고 커밋되지 않고(그림 2) 푸시되지 않은 작업(그림 3)을 계속 추적하기가 더 쉬워졌습니다.
버전 제어 - 게시되지 않은 커밋 예
(그림 2) 버전 제어 - 게시되지 않은 커밋 예제
버전 제어 - 보류 중인 변경 내용 없음 예
(그림 3) 버전 제어 - 보류 중인 변경 내용 없음 예제

로그인 및 ID 개선

Microsoft 개발자 도구에서 사용자 계정을 공유할 수 있는 새로운 ID 서비스가 도입되었습니다. Visual Studio 내에서 이러한 공유로는 팀 탐색기, Azure 도구, Windows 스토어 게시 등이 포함됩니다. 이러한 기능은 이제 공통적이고 일관적인 로그인 환경을 공유합니다.

Visual Studio의 기능 향상과 함께 사용자가 안전하게 로그인 상태를 유지하고 12시간마다 강제 로그인을 제거할 수 있도록 서비스 쪽에 몇 가지 향상된 기능이 배포되었습니다. 이 조치를 통해 가장 많이 보고되는 로그인 문제를 해결했습니다. Visual Studio 프롬프트에 대한 자세한 정보

시작 페이지

다시 디자인된 시작 페이지에는 다음과 같은 새로운 열기 및 만들기 기능이 포함되어 있습니다.

  • VSTS에서 원격 리포지토리를 가져오거나 Microsoft의 보다 탁월한 MRU를 사용하여 로컬 프로젝트 및 솔루션을 쉽게 열 수 있습니다.
  • 다른 컴퓨터에 복제한 리포지토리가 시작 페이지 MRU에 표시되므로 이러한 리포지토리를 현재 컴퓨터에 쉽게 복제할 수 있습니다.
  • 검색 가능한 템플릿 및 최근에 사용한 템플릿 목록을 사용하여 시작 페이지에서 직접 새 프로젝트를 만들 수 있습니다. 최근에 사용한 템플릿이 개인 설정 계정을 사용하여 Visual Studio 인스턴스 간에 로밍됩니다.
  • 시작 페이지의 "VSTS에서 체크 아웃" 옵션을 통해 VSTS 환경에서 새 복제를 신속하게 시작할 수 있습니다.
  • "시작" 섹션을 해제할 수 있습니다.
  • 이제 뉴스 섹션을 축소할 수 있습니다.
    • 뉴스 피드에서 새로 추가된 항목에는 배지가 업데이트됩니다.
    • 뉴스 피드를 축소할 때 새 항목이 나타나는 경우 뉴스 피드 확장기에 배지가 나타납니다.
  • 작은 화면에서의 항목 잘림과 빈 공간의 효율적인 활용에 대한 의견을 수용하여 시각적 디자인을 세부적으로 조정했습니다.

새로운 시작 페이지는 다음과 같습니다(그림 4).

시작 및 뉴스를 표시한 시작 페이지
(그림 4) 시작 및 뉴스를 표시한 시작 페이지

향상된 코드 탐색

Visual Studio 2017의 코드 탐색 기능이 대폭 향상되었습니다.

  • 전체로 이동(Ctrl+ 또는 Ctrl+ T)을 사용하면 파일, 형식, 메서드 및 코드의 기타 요소를 신속하게 찾아서 이동할 수 있습니다. 큰 코드베이스에서도 모든 종류의 항목을 찾을 수 있습니다. 게다가 찾고 있는 항목의 종류를 알고 있다면 간단하게 필터링할 수 있습니다. 또한 C#, Visual Basic 및 F#에서는 형식 이름을 잘못 입력한 경우에도 여전히 결과를 얻을 수 있도록 "유사" 일치 기능이 추가되었습니다. 줄 이동(Ctrl + G) 환경도 최신화했습니다. 편집 메뉴 위에서 이동 명령군을 찾을 수 있습니다(그림 5)(그림 6).
필터링된 결과로 이동
(그림 5) 필터링된 결과로 이동
줄 이동
(그림 6) 줄 이동
  • 모든 참조 찾기(Shift + F12)를 전체적으로 점검하여(현재 C#, Visual Basic, F# 및 C++에 대해) 고급 그룹화, 필터링, 정렬, 참조 결과 내에서 검색, 결과 색 지정(C# 및 VB의 경우) 등의 기능을 제공하므로 참조를 명확하게 이해하고 확신을 갖고 필요한 코드 줄로 이동할 수 있습니다. 참조 항목을 마우스로 가리키면 소스 코드(C# 및 VB의 경우)에 대한 참조 컨텍스트와 함께 도구 설명이 표시됩니다. 도구 모음에서 결과 유지 단추를 설정/해제하여 그 다음번에 모든 참조 찾기를 호출하면 새 창이 참조 결과로 채워집니다. 이 단추를 사용하여 기존 창을 현재 결과로 유지할 수도 있습니다(그림 7).
모든 참조 찾기
(그림 7) 모든 참조 찾기
  • 이제 편집기에 구조 안내선이 그려지기 때문에 작업하는 코드 구조를 쉽게 시각화할 수 있습니다. 마우스로 가리키면 상위 블록을 기준으로 현재 코드 블록의 컨텍스트를 포함하는 도구 설명(그림 8)이 표시됩니다. 현재 구조 안내선은 C#, Visual Basic, F# 및 XAML 파일에 사용할 수 있으며 TextMate 문법을 통해 지원되는 모든 파일에도 사용할 수 있습니다. 텍스트 편집>기 일반 범주 아래의 구조 안내선 표시 확인란을 선택 취소하여 도구 > 옵션 대화 상자에서 이 기능을 사용하지 않도록 설정할 수 있습니다.
구조 안내선
(그림 8) 구조 안내선

EditorConfig를 통한 코딩 규칙 지원

이제 Visual Studio 편집기에서 EditorConfig를 지원합니다. 개발자가 EditorConfig를 사용하면 서로 다른 편집기와 IDE 간에 서로 일관되는 코딩 스타일 규칙을 정의하고 유지할 수 있습니다. 자세한 내용은 설명서를 참조하고, .editorconfig 파일을 사용하여 .NET 코드 스타일을 제어하는 방법에 대한 자세한 내용은 .NET 설명서를 참조하세요.

폴더 열기

폴더 열기는 프로젝트와 솔루션 없이 코드베이스를 사용할 수 있는 간편한 방법입니다. 파일>열기>폴더를 클릭한 다음, 탐색할 폴더를 선택하여 메뉴 모음에서 폴더 열기 기능을 볼 수 있습니다. 솔루션 탐색기를 사용하여 파일을 열고 편집할 수 있습니다(그림 9). 많이 사용하는 다양한 언어에서 구문 강조와 기호 탐색(이동)이 가능합니다.

Visual Studio IDE의 새 폴더 열기 기능
(그림 9) Visual Studio IDE의 새로운 폴더 열기 기능

또한 일부 언어에서는 고급 IntelliSense가 가능하고 폴더에서 바로 디버깅할 수도 있습니다.

  • C++(CMake)
  • Node.js - JavaScript/TypeScript
  • C# 및 VB.

솔루션 탐색기에서 F5와 파일 상황에 맞는 메뉴를 사용하여 빌드 또는 디버깅 작업을 할 수 있습니다. 환경을 최적으로 구축하려면 사용 중인 언어의 워크로드를 설치해야 합니다.

또한 폴더 보기에서 다음이 가능합니다.

  • 이동(Ctrl+)을 사용하여 폴더에 있는 코드를 전체적으로 검색합니다.
  • 솔루션 탐색기 폴더 보기의 범위를 하위 폴더로 확장합니다.
  • 탐색기에서 또는 솔루션 탐색기의 명령 프롬프트에서 폴더를 엽니다.
  • 솔루션 선택 드롭다운을 사용하여 열린 폴더 또는 리포지토리에서 솔루션 간에 간편하게 전환합니다.
  • launch.vs.json을 사용하여 디버그 및 시작 설정을 구성합니다. 디버그할 수 있는 파일을 마우스 오른쪽 단추로 클릭하고 디버그 및 시작 설정을 선택합니다.
  • tasks.vs.json을 사용하여 작업을 구성하고 빌드를 사용자 지정합니다. 아무 파일이나 마우스 오른쪽 단추로 클릭하고 작업 설정 구성을 선택합니다.
  • JSON 편집기의 Launch.vs.json과 tasks.vs.json에는 IntelliSense 기능이 있습니다.

폴더 열기 성능 및 폴더 뷰와 솔루션 뷰 간의 전환 성능이 크게 향상되었습니다.

경량 솔루션 로드

경량 솔루션 로드를 사용하여 대형 솔루션을 빨리 로드할 수 있습니다. 따라서 대형 솔루션의 솔루션 로드 시간 및 메모리 사용량을 크게 개선할 수 있습니다. 기본적으로 이 기능은 해제되어 있으며 솔루션별로 또는 IDE 전역으로 설정할 수 있습니다. 전역적으로 사용하도록 설정하려면 도구 > 옵션으로 이동한 다음 프로젝트 및 솔루션 에서 일반을 선택하거나(그림 10) 빠른 실행으로 "경량 솔루션 로드"를 검색합니다. 솔루션 속성 창에서 각 솔루션에 대해 이 기능을 켜거나 끌 수 있습니다.

새로운 경량 솔루션 로드 기능 Visual Studio IDE
(그림 10) Visual Studio IDE의 새로운 경량 솔루션 로드 기능

경량 솔루션 로드는 C# 프로젝트나 C#과 C++ 프로젝트가 섞인 프로젝트가 있는 대형 프로젝트에 이상적입니다. 대형 솔루션을 사용하는 것으로 감지되면 이 기능을 사용하라는 메시지가 나타날 수 있습니다.

전체 솔루션 빌드의 성능이 상당히 향상되었습니다. 이제 기존의 솔루션 로드와 동등한 수준입니다.

더 많은 언어에 대한 구문 색 지정, 자동 완성, 코드 조각 및 "탐색" 검색 지원

Visual Studio 2015 업데이트에 추가한 지원을 기반으로 Visual Studio 2017에서는 이제 증가된 범위의 언어에 대해 구문 색 지정 및 자동 완성을 지원합니다. 또한 이러한 언어 중 일부는 “탐색”(Ctrl+) 및/또는 코드 조각을 통한 탐색도 지원합니다.

아래 언어에 대한 파일은 해당 언어를 명시적으로 지원하는 워크로드가 설치되지 않은 경우에도 새로운 Visual Studio 핵심 편집기에서 이러한 기능을 지원합니다. 언어 지원을 제공하는 워크로드(예: .NET 데스크톱 애플리케이션 개발 워크로드, C++를 사용한 Windows 데스크톱 앱 개발 워크로드 등)가 설치된 경우 IntelliSense 및 Light Bulbs와 같은 기타 고급 언어 기능을 비롯한 보다 광범위한 언어 지원이 제공될 수도 있습니다.

지원 수준별 언어 파일 형식:

  • 구문 색 지정 및 자동 완성만 지원합니다.
    • Bat, Clojure, CoffeeScript, CSS, Docker, F#, Groovy, INI, Jade, Javadoc, JSON, LESS, LUA, Make, Markdown ++, Objective-C, Perl, PowerShell, Python, Rust, ShaderLab, SQL, Visual Basic .NET, YAML.
  • 코드 조각(구문 색 지정 및 자동 완성 외에)을 지원합니다.
    • CMake, C++, C#, Go, Groovy, HTML, Java, Javadoc, JavaScript, Lua, Perl, PHP, R, Ruby, Shellscript, Swift, XML.
  • 탐색(구문 색 지정 및 자동 완성 외에)을 지원합니다.
    • C++, C#, Go, Java, JavaScript, PHP, TypeScript, Visual Basic.

프로젝트 개요 페이지 시작

새롭게 만든 프로젝트에 맞게 완전히 새로운 시작 환경을 도입하였습니다. 기존의 시작 페이지를 새로운 앱 구성 디자이너의 개요 탭으로 바꾸고, 신속하게 준비하고 실행할 수 있는 작업의 페이지에 초점을 맞췄습니다. ASP.NET 4.x ASP.NET Core 및 Cordova 프로젝트에서 사용할 수 있습니다(그림 11).

(그림 11) 프로젝트 개요
(그림 11) 프로젝트 개요

연결된 서비스를 사용하여 서비스에 연결

이전 릴리스에서는 이 기능의 이름이 서비스 기능이었습니다. 이름이 연결된 서비스로 변경되었습니다.

연결된 서비스는 Visual Studio 2017의 최신 "연결된 서비스 추가" 또는 "서비스 참조 추가" 기능입니다. 연결된 서비스 기능을 사용하면 앱을 서비스에 더 쉽게 연결할 수 있습니다. 웹 및 모바일 프로젝트 유형의 경우 솔루션 탐색기에서 "연결된 서비스"라는 새 노드를 사용할 수 있습니다. 이 노드를 두 번 클릭하면 Visual Studio에서 새 전체 페이지 탭이 열리고 이 탭에서 연결 가능한 Microsoft 인기 서비스를 검색할 수 있습니다.

연결된 서비스 페이지(그림 12)에서 서비스를 선택하면 연결된 서비스 마법사가 호출되며, 이 마법사에서 프로젝트를 구성하고 필요한 NuGet 패키지를 다운로드하여 신속하고 어려움 없이 서비스에 대한 코딩을 시작할 수 있습니다.

연결된 서비스
(그림 12) 연결된 서비스

도구 및 기능의 제품 내 구입

Visual Studio 2017을 사용하면 IDE를 종료하지 않고도 추가 작업 및 구성 요소를 쉽게 가져올 수 있습니다(그림 13). 빠른 실행을 활용하여 작업 또는 개별 구성 요소에 대한 Visual Studio 설치 관리자를 찾아서 설치할 수 있습니다.

빠른 실행을 통한 제품 내 취득
(그림 13) 빠른 실행을 통한 제품 내 구입

원하는 템플릿을 찾을 수 없는 경우 새 프로젝트 대화 상자 내에서 Visual Studio 설치 관리자를 열 수도 있습니다(그림 14).

제품 내 빠른 실행 대화 상자
(그림 14) 제품 내 빠른 실행 대화 상자

Visual C++

Visual Studio 2017에는 Visual C++ 환경에 대한 많은 업데이트와 수정이 포함되었습니다. 버그를 알려 주셔서 감사합니다. 컴파일러 및 도구에서 250개 이상의 버그와 보고된 문제가 해결되었으며, 그 중 상당수는 고객이 Microsoft Connect를 통해 제출한 것들입니다. 이 릴리스에서는 STL의 성능 향상을 위해 최선을 다했습니다. 이제 새 SQLite 기반 데이터베이스 엔진이 기본적으로 사용됩니다. 이 엔진은 정의로 이동(Go To Definitions), 모든 참조 찾기(Find All References) 같은 데이터베이스 작업의 속도를 높이고 초기 솔루션 구문 분석 시간을 크게 개선합니다. 이제 원래 C++ 워크로드에 대한 보다 세분화된 설치 환경이 제공됩니다. 필요한 도구만 설치할 수 있도록 선택 가능한 구성 요소가 추가되었습니다. Visual Studio의 CMake 지원을 사용할 수 있습니다! 이제 CMake 프로젝트를 Visual Studio에 직접 로드하고 코딩을 시작해 보세요. "폴더 열기" C++ 환경이 개선되었습니다. 따라서 Visual Studio 솔루션 및 프로젝트를 만들 필요 없이 소스 코드를 Visual Studio로 가져올 수 있습니다. 탐색은 이제 이동이라고 하며 새 탐색 필터 집합에 대한 포괄적인 용어입니다. 이를 통해 특히 큰 코드베이스에서 더 쉽게 올바른 결과를 찾을 수 있습니다.

C++ 코드 분석

C++ Core 지침을 적용하기 위한 C++ Core Checkers가 이제는 Visual Studio와 함께 배포됩니다. 프로젝트의 속성 페이지(그림 15)의 코드 분석 확장 대화 상자에서 체커를 활성화하기만 하면 코드 분석을 실행할 때 확장이 포함됩니다.

CppCoreCheck 속성 페이지
(그림 15) CppCoreCheck 속성 페이지

C++ 컴파일러

C++ 컴파일러 및 표준 라이브러리가 C++11 및 C++14 기능에 대한 지원 개선과 C++17 표준에서 선보일 것으로 예상되는 특정 기능에 대한 예비 지원으로 업데이트되었습니다. 컴파일러는 일반화된 constexpr을 지원하고 집계에 NSDMI를 사용할 수 있기 때문에 C++14 표준에 추가된 기능을 완벽히 갖췄습니다. 하지만 아직까지 C++11 표준 기능과 C++98 표준 기능이 몇 가지 부족합니다. Visual Studio 2017에서는 /sdl과 함께 /await를 사용할 수 있습니다. 코루틴에서 /rtc 제한도 제거했습니다.

이 릴리스는 최적화 및 코드 생성 기능이 향상되었습니다. 특히 주목할 만한 기능 향상은 다음과 같습니다.

  • 루프의 코드 생성 향상: 상수 정수 나누기의 자동 벡터화를 지원하며, memset 패턴 식별 기능이 향상되었습니다.
  • 코드 보안 개선: 버퍼 오버런 컴파일러 진단의 내보내기가 개선되었으며, 이제 /guard:cf가 점프 테이블을 생성하는 switch 문을 보호합니다.
  • /debug:fastlink 옵션이 향상되어 대형 구성 요소에 대한 링크 타임이 Visual Studio 2015에서보다 30% 더 빨라졌습니다.
  • 코루틴을 사용하는 경우 /await 스위치 아래에서 사용할 수 있었던 실험적 키워드 "yield"가 제거되었습니다. 대신 "co_yield"를 사용하도록 코드를 업데이트해야 합니다. 자세한 내용은 Visual C++ 팀 블로그를 참조하세요.

C++ 라이브러리

  • [STL] basic_string의 성능이 향상되었습니다.
  • [STL] <any>, <string_view>, apply(), make_from_tuple()이 추가되었습니다.
  • [STL] 정확성과 성능 개선을 위해 std:: vector가 조사되었습니다.
  • [STL] 이제 STL이 가상의 null 포인터를 역참조하지 못하도록 방지합니다.
  • [STL] <optional>, <variant>, shared_ptr::weak_type 및 <cstdalign>이 추가되었습니다.
  • [STL] min/max/minmax(initializer_list) 및 min_element/max_element/minmax_element()에 C++14 constexpr을 사용할 수 있게 되었습니다.
  • [STL] std::string/std::wstring의 이동 생성자 성능이 3배 넘게 향상되었습니다.
  • [STL] STL 개선의 전체 목록은 Visual C++ 팀 블로그를 참조하세요.
  • [ATL] 이름 조회 규칙이 추가로 수정되었습니다.
  • [ATL] 기존 이동 생성자 및 이동 할당 연산자가 이제 throw되지 않음으로 제대로 표시됩니다.
  • [ATL] atlstr.h에서 지역 정적 변수의 스레드 안전 초기화에 대한 유효한 경고 C4640이 표시됩니다.
  • [ATL] [ATL 사용 및 DLL 빌드] 시 XP 도구 집합에서 지역 정적의 스레드 안전 초기화가 자동으로 해제됨 더 이상 그렇지 않습니다. 스레드 안전 초기화 해제를 원하는 경우 프로젝트 설정에 /Zc:threadSafeInit-을 추가할 수 있습니다.
  • [AMP] 라이브러리가 감사되고 입력 오류가 수정되었습니다.
  • [VCRuntime] 제어 흐름 보호 기호에 대한 새 헤더 'cfguard.h'

C++ IDE

이제 구성 변경 성능이 C++ 네이티브 프로젝트의 경우 향상되었고, C++/CLI 프로젝트의 경우 훨씬 더 향상되었습니다. 이제 처음으로 활성화될 때 솔루션 구성이 더 빠르고, 이 솔루션 구성의 모든 후속 활성화는 거의 즉시 이루어집니다.

이제 새 SQLite 기반 데이터베이스 엔진이 기본적으로 사용됩니다. 이 엔진은 정의로 이동(Go To Definitions), 모든 참조 찾기(Find All References) 같은 데이터베이스 작업의 속도를 높이고 초기 솔루션 구문 분석 시간을 크게 개선합니다. 해당 설정이 도구 > 옵션 > 텍스트 편집기 > C/C++ > 고급(이전에는 ...C/C++ > 실험적에 있었음)으로 이동되었습니다.

미리 컴파일된 헤더를 사용하지 않는 프로젝트 및 파일에 대한 IntelliSense 성능이 향상되었습니다. 현재 파일의 헤더에 대해 자동 미리 컴파일된 헤더가 생성됩니다.

기타 업데이트는 다음과 같습니다.

  • IntelliSense 오류에 대한 오류 필터링 및 도움말이 오류 목록(그림 16)에 추가되었습니다. 이제 오류 열을 클릭하여 필터링할 수 있습니다(그림 17). 또한 특정 오류를 클릭하거나 F1 키를 누르면 오류 메시지에 대한 온라인 검색이 시작됩니다.
오류 목록
(그림 16) 오류 목록
오류 목록 필터링
(그림 17) 오류 목록 필터링
  • 멤버 목록 항목을 종류별로 필터링하는 기능이 추가되었습니다(그림 18).
필터링된 멤버 목록
(그림 18) 멤버 목록 필터링
  • 멤버 목록에 나타나는 항목의 컨텍스트 인식 필터링을 제공하는 새로운 실험 예측 IntelliSense 기능이 추가되었습니다.

  • 새로운 모든 참조 UI 찾기에는 C++ 코드 결과의 변수에서 읽고 있는지 아니면 C++ 코드 결과의 변수에 쓰고 있는지에 대한 정보가 포함되어 있습니다.

  • IntelliSense 점-화살표 기능이 실험적에서 고급으로 옮겨졌고 이제 기본적으로 사용됩니다. 편집기 기능인 범위 확장과 우선 순위 확장도 실험적에서 고급으로 옮겨졌습니다.

  • 실험적 리팩터링 기능인 시그니처 변경과 함수 추출을 기본적으로 사용할 수 있습니다.

  • C++ 프로젝트 ‘빠른 프로젝트 로드’를 위한 새로운 실험적 기능을 사용할 수 있게 되었습니다. 다음에 C++ 프로젝트를 열 때 프로젝트가 더 빠르게 로드되고, 그 다음에 프로젝트를 열 때는 더 빠르게 로드됩니다.

  • 폴더 열기 환경이 개선되었습니다. "폴더 열기"를 통해 소스를 로드하여 MSBuild가 아닌 C++ 프로젝트를 편집, 빌드 및 디버그할 수 있습니다. 다음 json 파일을 통해 환경을 사용자 지정할 수 있습니다.

    • IntelliSense 및 검색 환경을 사용자 지정할 수 있는 CppProperties.json.
    • 빌드 단계를 사용자 지정할 수 있는 Tasks.vs.json.
    • 디버깅 환경을 사용자 지정할 수 있는 Launch.vs.json.
  • C++ IntelliSense가 루트 폴더에 CppProperties.json 파일을 만들지 않아도 작동합니다. 이와 함께 CMake 파일과 CppProperties.json 파일에서 제공하는 구성을 서로 쉽게 전환할 수 있도록 새 드롭다운을 추가했습니다. 폴더 열기의 CMake 지원: "폴더 열기"로 CMake 프로젝트를 열면 C++ 편집, 빌드, 디버깅을 위한 환경이 자동으로 구성됩니다.

  • CMakeLists.txt 파일과 같은 폴더에 있는 CMakeSettings.json 파일을 통해 추가 구성이 지원됩니다(그림 19).

CMake 폴더 열기
(그림 19) CMake 폴더 열기

C++ 설치 워크로드

  • C++을 사용한 Windows 데스크톱 개발:

    • 이제 원래 C++ 워크로드에 대한 보다 세분화된 설치 환경이 제공됩니다. 필요한 도구만 설치할 수 있도록 선택 가능한 구성 요소가 추가되었습니다. 설치 관리자 UI에 나열된 구성 요소에 대해 표시된 설치 크기는 정확하지 않으며 전체 크기는 이보다 클 수 있습니다.

    • C++ 데스크톱 작업에서 Win32 프로젝트를 성공적으로 만들려면 도구 집합과 Windows SDK를 둘 다 설치해야 합니다. 권장된(선택된) 구성 요소 "VC++ 2017 v141 도구 집합(x86, x64)" 및 "Windows 10 SDK(10.0.14393)"를 설치하면 이 기능이 제대로 작동합니다. 필요한 도구가 설치되어 있지 않으면 프로젝트가 생성되지 않고 마법사가 중단됩니다.

  • C++를 사용한 Linux 개발:

    • 일반적으로 사용되는 확장인 Linux 개발용 Visual C++가 Visual Studio에 포함됩니다. 이 설치는 Linux 환경에서 실행되는 C++ 애플리케이션을 개발 및 디버깅하는 데 필요한 모든 사항을 제공합니다.
  • C++를 사용한 게임 개발:

    • C++의 모든 기능을 사용하여 DirectX 또는 Cocos2d로 구동하는 전문 게임을 개발해 보세요.
  • C++를 사용한 모바일 개발(Android 및 iOS):

    • 이제 Visual Studio를 사용하여 Android 및 iOS를 대상으로 할 수 있는 모바일 앱을 만들고 디버깅할 수 있습니다.
  • 유니버설 Windows 플랫폼 개발:

    • C++는 유니버설 Windows 플랫폼 개발 워크로드에 대한 선택적 구성 요소로 제공됩니다. 현재 C++ 프로젝트를 업그레이드하려면 수동으로 해야 합니다. Visual Studio 2017에서 v140을 대상으로 한 UWP 프로젝트를 열 때 Visual Studio 2015를 설치하지 않은 경우 프로젝트 속성 페이지에서 v141 플랫폼 도구 집합을 선택해야 합니다.

Clang/C2 플랫폼 도구 집합

이제 Visual Studio 2017과 함께 제공되는 Clang/C2 도구 집합이 대규모 프로젝트를 빌드하는 데 중요한 /bigobj 스위치를 지원합니다. 또한 컴파일러의 프런트 엔드와 백 엔드에서 몇몇 중요한 버그 수정이 있었습니다.

C# 및 Visual Basic

언어 확장

이 릴리스에서는 다음을 포함하여 C# 7.0 및 Visual Basic 15 언어 기능에 대한 지원이 도입되었습니다.

C#의 경우:

  • 비동기 메서드의 작업과 비슷한 반환 형식: 비동기 메서드에서 작업과 비슷한 형식을 반환하는 기능이 도입되었습니다. 이전에는 이러한 반환 형식이 Task<T>Task(으)로 제한되었습니다.
  • 값 튜플튜플을 사용하여 형식화된 값 집합을 일시적으로 그룹화할 수 있는 언어 지원을 제공합니다. 자세히 알아보려면 GitHub에서 디자인 참고를 검토하세요.
  • 중첩된 로컬 함수는 블록 범위에서 함수 선언을 지원하도록 언어를 확장합니다.
  • 패턴 일치 확장은 함수 언어에서 제공하는 대수 데이터 형식 및 패턴 일치의 여러 이점을 사용할 수 있게 해줍니다.
  • 참조 반환은 함수가 참조를 통해 값을 반환할 수 있도록 해줍니다.

Visual Basic:

  • 값 튜플튜플을 사용하여 형식화된 값 집합을 일시적으로 그룹화할 수 있는 언어 지원을 제공합니다. Dim point As (x As Integer, y As Integer) = GetOffset()
  • ByRef 반환 소비는 ByRef가 반환하는 라이브러리의 함수 및 속성을 사용할 수 있도록 언어를 확장합니다.
  • 이진 리터럴 및 숫자 그룹 구분 기호를 사용하여 이진 숫자를 기본적으로 표시할 수 있습니다. 이 기능을 비트 마스크 및 플래그 열거형 &B1001_0011에 사용하면 매우 간편합니다.

자세한 내용을 보려면 CSharpLang GitHubVBLang GitHub에서 Microsoft의 언어 디자인에 따라 이러한 언어 확장 및 제안된 다른 언어 확장에 대해 알아보세요.

빠른 작업 및 리팩터링

Visual Studio에서는 생산성과 코드의 가독성을 높이는 데 도움이 되는 많은 리팩터링을 제공합니다. 다음은 몇 가지 예입니다.

  • 이니셜라이저로 개체 초기화 단순화(그림 20)
개체 이니셜라이저 사용
(그림 20) 개체 이니셜라이저 사용
  • 새 C#7 기능을 활용하여 out 변수 선언을 인라인으로 이동(그림 21)
변수 인라인 밖으로 이동
(그림 21) 변수 인라인 밖으로 이동
  • 새 C#7 기능을 활용하여 null 병합 연산자로 null 검사와 throw 식 간소화(그림 22)
Null 병합 연산자로 throw 식 사용
(그림 22) Null 병합 연산자로 throw 식 사용
  • 형식을 일치하는 파일로 이동: Ctrl+를 통해 클릭 한 번으로 한 파일에서 형식을 추출한 후 이름이 같은 다른 파일에 넣습니다.
  • 파일 및 형식 이름 동기화: 파일 및 형식 이름이 일치하지 않으면 Ctrl+을(를) 사용할 수 있습니다.
  • String.Format을(를) 문자열 보간으로 변환: 이 빠른 작업과 함께 C# 6개 언어 기능을 활용합니다.
  • C# 스위치 또는 Visual Basic Select에 누락된 대/소문자를 추가합니다.
  • 속성을 메서드로 변환하거나 그 반대로 합니다.
  • 패키지 참조 추가: 인식할 수 없는 형식에 대해 NuGet 패키지 자동 검색과 설치(및 using/Import 추가)를 제공합니다. 이 기능을 사용하려면 도구 > 옵션 > 텍스트 편집기 > [C#/Basic] > 고급 > 참조 어셈블리의 형식에 대한 using 제안/NuGet 패키지의 형식에 대한 using 제안으로 이동합니다.
  • 적용 가능한 경우 비동기 메서드를 동기 메서드로 설정합니다.
  • 철자가 잘못된 형식에 대해 "유사" 일치를 지원합니다.
코딩 규칙 구성 및 적용

EditorConfig에 대한 Visual Studio 지원을 활용하여 커뮤니티와 협력해서 파일 형식에 .NET 코드 스타일 설정을 추가했습니다. 즉, 이제 팀의 고유한 코드 스타일 규칙을 구성하고 소스 제어에서 이를 확인할 수 있으며, 개발자가 코드 입력 시 편집기에 위반 사항이 실시간으로 표시됩니다. Roslyn 리포지토리의 .editorconfig 또는 설명서에서 모든 코드 스타일 옵션을 확인할 수 있습니다. 도구 > 옵션 > 텍스트 편집기 > [C#/Basic] > 코드 스타일에서 머신별 코드 스타일 설정을 계속 구성할 수 있으며, EditorConfig가 있고 충돌하는 경우 이러한 규칙이 재정의됩니다.

또한 팀에서 코딩 규칙을 사용자 지정하여 적용할 때 도움이 되도록 다음 항목을 포함하여 스타일 분석기를 추가 및 업데이트했습니다.

  • 명명한 스타일 규칙
  • var 또는 명시적 형식을 사용합니다.
  • 멤버 액세스에 this.또는 Me.를 사용합니다.
  • 식 본문 또는 블록을 사용합니다.
  • castnull 검사에 대해 패턴 일치를 사용합니다.
  • 명시적 튜플 이름을 사용합니다.
  • throw 식, 조건부 대리자, 병합 식 및 null 전파를 사용하여 null 검사를 간소화합니다.
  • 중괄호가 필요합니다.

참고: 기본적으로 이러한 코드 스타일 규칙의 여러 개가 편집기에서 제안 사항으로 구성됩니다(그림 23).

EditorConfig에서 코드 스타일 기본 설정 및 적용 구성
(그림 23) EditorConfig에서 코드 스타일 기본 설정 및 적용 구성

IntelliSense 개선 사항

또한 이 릴리스에서는 IntelliSense의 향상된 기능을 도입했으며 대형 솔루션이나 생소한 코드베이스에서 이 기능을 사용하여 작업하면 생산성이 크게 증가합니다. 유형별(예: 메서드, 속성, 클래스 등)로 멤버 목록을 필터링할 수 있는 아이콘 트레이를 IntelliSense에 추가했습니다. 각 필터 토글에는 바로 가기 키가 연결되어 있으며 바로 가기 키는 아이콘을 마우스로 가리켜 찾을 수 있습니다. 이 기능을 사용하려면 도구>옵션>텍스트 편집기>[C#/Basic]>IntelliSense로 이동하고 필터링 및 강조 표시에 대한 옵션을 선택합니다(그림 24).

IntelliSense 완성 필터링
(그림 24) IntelliSense 완성 필터링

기타 편집기 개선 사항

  • 긴 문자열의 중간에 커서를 놓고 Enter 키를 눌러 긴 문자열을 여러 개의 연결된 문자열로 분할할 수 있습니다.
  • 진단 및 CodeLens 정보를 컴퓨팅하는 백그라운드 작업이 있을 때 IDE 응답성이 높아지도록 상당한 작업을 했습니다.

F#

F# 4.1 언어 기능 지원

  • C# 7/VB 15 튜플과 상호 운용하는 구조체 튜플.
  • C# 7 ref 반환 사용을 지원하는 Byref 반환.
  • [<Struct>] 특성으로 구조체 레코드 지원(Will Smith)
  • [<Struct>] 특성으로 구분된 공용 구조체 지원.
  • FSharp.Core의 지원 함수를 포함하는 새로운 Result<'TSuccess, 'TFailure> 형식(Oskar Gewalli)
  • 스택에서 포인터 형식의 로컬 고정을 지원하는 fixed 키워드.
  • 숫자 리터럴의 밑줄(Avi Avni)
  • 호출자 정보 특성 인수(Lincoln AtkinsonAvi Avni)
  • namespace recmodule rec을 통해 동일한 파일 내의 상호 참조 형식 및 모듈.
  • 형식과 동일한 이름을 공유하는 모듈의 암시적 "모듈" 접미사.

F# 컴파일러 및 FSharp.Core의 개선 사항

(대부분 F# 커뮤니티에서 수행)

Roslyn 작업 영역을 기반으로 한 새 편집기

(뛰어난 F# 커뮤니티에서 제공하는 여러 새 IDE 기능)

F# 커뮤니티의 추가 기여

Visual Studio 2017에서 F# 도구의 빌드 사용, 버그 신고, 토론, 버그 수정 및 기능 구현에 대해 전체 F# 커뮤니티에 감사드립니다. Visual Studio 2017에서 F#의 성공은 F# 커뮤니티 없이는 불가능했을 것입니다. 참가자의 전체 목록을 확인하세요.

JavaScript 및 TypeScript

TypeScript 2.1

Visual Studio에서 모든 TypeScript 프로젝트에 TypeScript 2.1을 사용할 수 있습니다. TypeScript 2.1은 하위 async/await가 가능하고 형식 유추가 개선되었으며 로컬 개체 확장을 제공하는 등 다양한 이점이 있습니다. 이 릴리스에 대한 자세한 내용은 릴리스 블로그 게시물 또는 전체 변경 로그를 참조하세요.

JavaScript 언어 서비스

새로운 JavaScript 언어 서비스(그림 25)가 제공되며 기본적으로 활성화됩니다. 새 서비스는 보다 풍부한 IntelliSense 기능을 제공하며 JSDoc 설명 주석, ES6 및 Common JS 모듈 형식에 대한 IntelliSense 지원을 추가합니다. 또한 JSX 구문을 지원하고 생성기, 모듈 및 데코레이터와 같은 ES2016 기능도 지원합니다. 자세한 내용은 이 블로그 게시물이나 GitHub의 JavaScript IntelliSense 설명서를 참조하세요.

jQuery용 Rich JavaScript IntelliSense
(그림 25) jQuery에 대한 풍부한 JavaScript IntelliSense

성능 개선

성능 향상은 이 릴리스에서 가장 중점적으로 다룬 영역 중 하나였습니다. 메모리 및 응답성 특징을 개선하기 위한 여러 최적화와 더불어, 가장 큰 Visual Studio 프로젝트에 메모리 릴리프를 제공하기 위해 전체 JavaScript/TypeScript 언어 서비스가 devenv.exe 외부의 위성 프로세스로 이동되었습니다. 큰 JavaScript 프로젝트에서 작업할 때 Visual Studio 프로세스의 메모리 소비가 감소하고 메모리 부족 크래시가 줄어듭니다.

디버깅 및 진단

실행하려면 클릭

디버깅하는 동안 코드 줄 옆에 있는 아이콘을 클릭하면 해당 줄이 실행됩니다(그림 26). 더 이상 코드를 실행하고 원하는 줄에서 중지하기 위해 임시 중단점을 설정하거나 여러 단계를 수행할 필요가 없습니다. 이제는 디버거에서 중단 상태인 동안 마우스가 위치한 코드 줄 옆에 실행하려면 클릭 아이콘이 미세하게 표시됩니다. 마우스를 아이콘으로 이동하여 단추를 클릭하면 코드가 실행되어 다음에 코드 경로에서 이 줄에 도달하면 해당 줄에서 중지됩니다. 디버그>옵션>실행 사용을 클릭하여 주 메뉴에서 해제할 수 있습니다.

실행하여 클릭 아이콘
(그림 26) 실행하려면 아이콘 클릭

프로세스에 연결 필터

프로세스에 연결 대화 상자(그림 27)에서 쉽게 검색하여 디버거를 연결할 프로세스를 빠르게 찾을 수 있습니다. 실행 중인 프로세스 목록이 검색 조건에 맞는 항목으로 필터링됩니다. 검색 필터는 고정되기 때문에 대화 상자를 다시 열면 이전 검색 조건이 남아 있습니다.

프로세스에 연결 필터
(그림 27) 프로세스에 연결 필터

프로세스에 다시 연결

이제 이전에 디버깅한 프로세스에 신속하게 다시 연결할 수 있습니다. 새 디버그/프로세스에 다시 연결(Shift+Alt+P) 명령을 트리거하면 이전 디버깅 세션 동안 프로세스에 연결 대화 상자에서 마지막으로 호출한 프로세스에 디버거를 연결하려는 동작이 바로 진행됩니다. 디버거는 우선 이전 프로세스 ID와 일치하는 항목이 있는지 찾은 다음 이전 프로세스 이름과 일치하는 항목이 있는지 찾아 프로세스에 다시 연결됩니다. 일치하는 항목이 없거나 이름이 같은 프로세스가 여러 개 발견되면 원하는 프로세스를 선택할 수 있도록 "프로세스에 연결" 대화 상자가 표시됩니다.

새 예외 도우미

새 예외 도우미(그림 28)를 사용하여 비모달의 소형 대화 상자에서 예외 정보를 한눈에 볼 수 있으며 내부 예외에 바로 액세스할 수도 있습니다. NullReferenceException을 진단하는 동안 예외 도우미 내부에서 바로 null인 항목을 신속하게 확인할 수 있습니다. 이제 throw된 예외에서 중지된 동안 조건 추가 확인란을 클릭하여 특정 모듈에서 throw된 예외 유형의 중단을 제외할 수 있습니다. 예외 도우미의 새로운 장점에 대한 자세한 내용은 이 블로그 게시물을 읽어보세요.

새 예외 도우미 대화 상자
(그림 28) 새 예외 도우미 대화 상자

예외 설정에 조건 추가

예외가 발생하면 디버거가 중단하도록 구성할 경우 지정한 모듈에서 예외가 발생할 때만 디버거가 중단하도록 조건을 추가할 수 있습니다(그림 29).

조건 편집 대화 상자
(그림 29) 조건 편집 대화 상자

디버거 접근성 향상

디버거 창 중 일부(호출 스택, 지역, 자동, 조사식 및 간략한 조사식)를 화면 판독기에서 다른 접근성 용도로 효과적으로 사용할 수 있습니다.

IntelliTrace의 .NET Core 이벤트 지원

이제 IntelliTrace가 ASP.NET Core 앱에 대해 MVC, ADO.NET 및 HttpClient 이벤트를 지원합니다. 이러한 이벤트는 진단 도구 창의 이벤트 탭에 표시됩니다.

진단 도구 창 업데이트

디버깅 세션을 시작하면 진단 도구 창에 애플리케이션의 새 요약 뷰(그림 30)가 표시됩니다. 여기서 다음 작업을 수행할 수 있습니다.

진단 도구 창의 요약 탭
(그림 30) 진단 도구 창의 요약 탭

성능 프로파일러 업데이트

이제 성능 프로파일러를 실행 중인 프로세스에 연결할 수 있습니다. 이제 CPU 사용량 도구, GPU 사용량 도구 및 성능 마법사를 사용하여, 실행 중인 프로세스에 연결할 수 있습니다.

CPU 사용 도구 업데이트

CPU 사용 도구의 여러 기능이 향상되었습니다.

  • 향상된 외부 코드 지원 - 이제 CPU 도구에서 사용자 코드에 의해 호출된 경우 라이브러리 및 프레임워크 비용에 대한 더 나은 통찰력을 제공합니다.
  • 함수 뷰(그림 31) - CPU 비용별로 순위가 매겨진 함수를 볼 수 있습니다.
함수 목록
(그림 31) 함수 목록
  • 호출자/호출 수신자 뷰(그림 32)에서는 선택한 함수와의 함수 호출 비용을 조사할 수 있습니다.
호출자/호출 수신자 보기
(그림 32) 호출자/호출 수신자 보기
  • 소스 뷰에서는 CPU 도구에서 함수를 선택할 때 해당 함수의 소스 코드를 표시합니다.

Chrome 디버깅 지원

ASP.NET 프로젝트의 디버깅을 시작할 때 Google Chrome을 브라우저로 선택하면 Visual Studio가 Chrome에서 실행 중인 JavaScript를 디버깅합니다. 브라우저 내부 개발 도구를 대신 사용하려는 경우 도구 > 옵션 > 디버깅에서 이 기능을 사용하지 않도록 설정할 수 있습니다.

라이브 유닛 테스트

Live Unit Testing(그림 33)은 유닛 테스트 결과 및 코드 검사를 편집기에 실시간으로 표시하는 Visual Studio 2017 Enterprise Edition의 기능입니다. .NET Framework를 대상으로 하는 C# 및 VB 프로젝트에 대해 MSTest, xUnit 및 Nunit을 지원합니다.

Live Unit Testing
(그림 33) Live Unit Testing

자세한 내용은 Live Unit Testing 블로그를 참조하세요.

테스트 도구

테스트 탐색기를 사용하여 자동화를 테스트 사례 작업 항목에 연결

이제 테스트 탐색기에서 테스트 메서드를 선택하여 자동화를 테스트 사례 작업 항목에 연결할 수 있습니다(그림 34). 또한 이 새로운 환경에서는 선택한 테스트 메서드에 대한 기존 연결도 볼 수 있습니다.

테스트 탐색기에서 테스트를 마우스 오른쪽 단추로 클릭하고...

테스트 탐색기 연결 자동화
(그림 34) 테스트 탐색기 자동화 연결

...연결을 만들려는 테스트 사례 ID를 제공하기만 하면 됩니다(그림 35).

Automation 연결
(그림 35) 자동화 연결

이전 버전의 Visual Studio에서는 작업 항목 폼을 사용하여 이 작업을 수행할 수 있었습니다. 도구 | 옵션을 사용하여 호환성 모드를 켜면 작업 항목 폼 기반 환경을 사용할 수 있습니다(그림 36).

작업 항목 양식 호환 모드
(그림 36) 작업 항목 폼 호환성 모드

팀 탐색기

새로운 Git 기능

IDE를 벗어나지 않고 엔드투엔드 워크플로의 더 많은 작업을 수행할 수 있게 해주는 새로운 Git 기능이 Visual Studio 2017에 추가되었습니다. 쉽게 나가는 커밋에 대한 차이를 보고, 강제 보내기를 수행하여 다시 지정을 완료하거나 수정된 커밋을 푸시하고, 업스트림 분기를 다시 설정하고, Visual Studio에서 패치 다시 지정을 계속할 수 있습니다. 또한 git.exe로 전환했습니다. 따라서 대부분의 최신 기능을 제공할 수 있습니다. SSH를 지원하고, 사용자의 구성 옵션을 존중하며, 팀 탐색기에서 명령줄의 표시 내용을 정확하게 보여 줍니다. 이러한 기능에 대한 자세한 내용은 블로그 게시물을 참조하세요.

VSTS/TFS에 연결

Visual Studio 시작 페이지 및 팀 탐색기에서 프로젝트에 연결하고 VSTS/TFS의 리포지토리를 복제하는 프로세스가 개인화 및 간소화되어 연결할 프로젝트와 리포지토리를 더 쉽고 빠르게 찾을 수 있습니다. 새로운 연결 페이지에 모든 VSTS/TFS 서버에서 매핑하고 복제한 프로젝트 및 리포지토리만(모든 프로젝트에 대한 모든 리포지토리 대신) 표시됩니다. 또한 더 이상 리포지토리를 복제하기 전에 프로젝트에 연결할 필요가 없습니다.

VSTS 및 TFS에 연결하기 위한 대화 상자를 시작하면 새로 디자인된 UX가 표시됩니다. 추가한 모든 TFS 서버가 표시된 후 선택한 사용자 계정에 대한 모든 VSTS 서버, 프로젝트 및 리포지토리가 표시됩니다. 보다 유용한 탐색을 위해 결과는 트리 구조로 표시됩니다. 리포지토리 외에 컬렉션 또는 프로젝트에도 연결할 수 있습니다.

작업 항목 폼

Visual Studio 2017에서 Visual Studio Team Services에 연결하여 작업 항목을 열면 작업 항목 폼이 웹 브라우저에 나타납니다(그림 37). 그러나 Team Foundation Server 2015 이전 버전에 연결하는 경우 레거시 작업 항목 폼이 나타납니다.

팀 탐색기의 작업 항목 폼
(그림 37) 팀 탐색기의 작업 항목 폼

향상된 Visual Studio 피드백 워크플로

Visual Studio 2017에는 더 나은 추가 작업 및 협업을 위한 업그레이드된 피드백 환경이 포함되어 있습니다. 이 업그레이드의 일부로, 완전한 엔드투엔드 피드백 솔루션을 위해 종합적인 웹 포털로 보완되는 보다 협력적인 문제 보고 환경이 Visual Studio에서 제공됩니다. 이제 Visual Studio IDE의 문제 보고 기능을 통해 해당 사용자가 제공한 모든 의견에 대한 최신 업데이트를 검색, 팔로우 및 응답하거나 가져올 수 있습니다. 이러한 향상된 환경에서는 사용자에게 받은 많은 피드백이 처리되며 Microsoft 팀과 사용자 간의 양방향 커뮤니케이션이 가능합니다.

Visual Studio 확장성

새 확장성 형식

Visual Studio 2017의 새로운 설치 관리자 기술은 사용자가 설치된 도구를 보다 완벽하게 제어할 수 있게 해 줍니다. 핵심 Visual Studio 편집기만 설치하는 사용자도 있지만 여러 워크로드를 설치하는 사용자도 있습니다. 필수 조건인 필요한 기능 및 확장 기능이 설치되어 있는지 확인할 수 있도록 이제 확장 기능 작성자는 매니페스트의 확장에 필요한 개별 구성 요소를 지정할 수 있습니다.

새 VSIX 형식으로 빌드하지 않은 확장을 설치하려고 하면 경고가 표시됩니다. 이전 VSIX 형식은 필요한 필수 구성 요소를 지정하지 않기 때문에 이러한 구성 요소를 Visual Studio 2017에서 사용할 수 없는 경우 작동하지 않을 수 있습니다. 새 VSIX 형식은 이전 버전과 호환하기 때문에 이전 버전의 Visual Studio(최대 Visual Studio 2012)를 대상으로 지정할 수 있습니다.

VSIX 매니페스트 디자이너가 매니페스트 변경 내용을 반영하도록 업데이트되었습니다. 확장 개발자는 필수 구성 요소 탭(그림 38)에서 설치된 구성 요소 목록을 찾아 해당 확장의 필수 구성 요소로 지정할 수 있습니다.

필수 구성 요소 탭
(그림 38) 필수 구성 요소 탭

확장을 설치하는 동안 VSIX 설치 관리자(그림 39)가 누락된 구성 요소를 보여주고 확장과 함께 설치합니다.

VSIXInstaller
(그림 39) VSIXInstaller

일괄로 확장 수정

Visual Studio를 다시 시작하기 전에 확장 및 업데이트 대화 상자(그림 40)에서 설치, 업데이트 및 제거할 확장을 여러 개 예약할 수 있습니다. 오른쪽 아래에는 예약된 작업이 요약되어 표시됩니다. 예약된 수정 작업을 제거하려면 현재 설치 예약된 확장 옆의 X를 클릭합니다.

확장 및 업데이트 대화 상자
(그림 40) 확장 및 업데이트 대화 상자

VSIX 설치 관리자가 모든 Visual Studio 창을 닫은 것을 감지하면 예약된 수정 작업을 시작하여 완료합니다(그림 41).

수정 설치 관리자 일괄 처리
(그림 41) 수정 설치 관리자 일괄 처리

Ngen 지원

이제 Ngen(그림 42)을 사용하여 어셈블리를 설치할 수 있습니다.

NGEN 속성
(그림 42) NGEN 속성
  • Ngen - 어셈블리에서 Ngen을 사용할지 여부
  • Ngen 애플리케이션 - /ExeConfig 스위치를 통해 Ngen에 전달할 애플리케이션입니다.
  • Ngen 아키텍처 - 네이티브 이미지에 대한 대상 아키텍처. 옵션은 x86, x64 및 all입니다.
  • Ngen 우선 순위 - Ngen 우선 순위 수준

확장 디렉터리 외부에 파일 설치

이제 확장 디렉터리 외부에 있는 폴더의 선택 목록에 파일을 설치할 수 있습니다(그림 43).

VSIX 속성
(그림 43) VSIX 속성
  • VSIX에 포함 - VSIX에 파일을 포함합니다.
  • 설치 루트 - 파일을 설치할 루트 디렉터리. 옵션은 Default(확장 디렉터리 내에 설치), PublicAssemblies, ReferenceAssemblies, MSBuild, Schemas, Licenses, RemoteDebugger 및 VSTargets입니다.
  • 대상 경로 - 사용자 컴퓨터에 설치할 파일 이름.
  • VSIX 하위 경로 - 파일을 설치할 설치 루트 아래의 하위 경로.

로밍 중인 확장 관리자

Visual Studio 2017의 새로운 기능인 로밍 중인 확장 관리자는 개발 환경 전체에서 즐겨 사용하는 확장을 추적하는 데 도움이 됩니다. 확장을 로밍하면 클라우드에서 동기화된 목록을 만들어 설치한 확장을 추적합니다.

Visual Studio에 로그인하면 도구 > 확장 및 업데이트에서 확장 목록을 빠르게 확인하고 로밍 확장 관리자 를 클릭합니다(그림 44). 로밍 중인 확장 관리자는 설치한 확장을 추적하며 로밍 목록에 추가되는 확장을 선택할 수 있도록 합니다. 매일 갤러리에서 새로운 확장이 제공되므로 이 도구를 사용하면 즐겨 사용하는 확장과 함께 각 개발 환경을 빠르고 쉽게 설정할 수 있습니다.

Visual Studio IDE의 새로운 로밍 중인 확장 관리자
(그림 44) Visual Studio IDE의 새로운 로밍 중인 확장 관리자

이 기능을 사용할 때 세 가지 아이콘 종류가 표시됩니다.

  • 로밍 아이콘 로밍 아이콘 - 로밍 목록의 일부이지만 이 컴퓨터에 설치되지 않은 확장을 나타냅니다. "다운로드" 단추를 통해 이러한 확장을 설치할 수 있습니다.
  • 로밍 및 설치 아이콘 로밍 및 설치 아이콘 - 로밍 목록의 일부이며 이 환경에 설치된 모든 확장을 표시합니다. 로밍하지 않도록 결정하는 경우 “로밍 중지” 단추를 통해 이러한 확장을 제거할 수 있습니다.
  • 설치 아이콘 설치된 아이콘 - 이 환경에 설치되어 있지만 로밍 목록에 포함되지 않은 모든 확장을 표시합니다. "로밍 시작" 단추를 통해 로밍 목록에 확장을 추가할 수 있습니다.

이러한 아이콘은 목록의 현재 상태를 보여 줍니다. 어떠한 확장이든 원하는 상태로 사용할 수 있으므로 필요에 따라 직접 사용자 지정할 수 있으며 자동으로 사용자 지정되게 할 수도 있습니다. 로그인되어 있는 동안 다운로드된 모든 확장은 로밍 및 설치로 목록에 추가됩니다. 따라서 로밍 목록에 포함되어 모든 머신에서 액세스할 수 있습니다.

프로젝트 및 항목 템플릿 검색

Visual Studio 2017부터 템플릿 검색 성능을 개선하기 위해 Visual Studio에서 프로젝트 및 항목 템플릿을 사용하는 방식이 크게 변경되었습니다. 이제 새 검색 메커니즘에서는 모든 항목 및 프로젝트 템플릿이 템플릿 매니페스트 파일에 정의할 "vstemplate" 스키마를 따라야 합니다. 템플릿 매니페스트 파일에 정의하지 않은 Visual Studio 템플릿은 더 이상 새 프로젝트 또는 새 항목 대화 상자에 표시되지 않습니다. 새 확장은 VSIX 빌드 타임에 매니페스트를 생성하지만 MSI 패키지의 일부로 릴리스된 Visual Studio 템플릿이 있는 경우 이러한 템플릿에 대한 템플릿 매니페스트 파일은 수동으로 생성해야 합니다. 자세한 내용은 Upgrading Custom Project and Item Templates for Visual Studio 2017(Visual Studio 2017의 사용자 지정 프로젝트와 항목 템플릿 업그레이드) MSDN 페이지를 참조하세요.

.NET Core 및 ASP.NET Core

새로운 MSBuild 기반 .NET Core 도구의 1.0 최종 릴리스가 포함되어 있습니다. Visual Studio 2017을 사용하여 .NET Standard 라이브러리, .NET Core 앱/라이브러리, 새로운 csproj 형식을 사용하는 ASP.NET 웹 프로젝트를 만들 수 있습니다.

.NET Core 도구가 설치 관리자의 "ASP.NET 및 웹 개발" 워크로드와 ".NET 데스크톱 개발" 워크로드(선택적 구성 요소)에 자동으로 포함됩니다. 플랫폼 간 전용 .NET Core 애플리케이션을 개발하려는 경우 설치 관리자의 "다른 도구 집합" 섹션에서 ".NET Core 플랫폼 간 개발" 작업을 사용하여 .NET Core 및 ASP.NET Core 도구만 설치할 수 있습니다.

이 릴리스의 고급 기능은 다음과 같습니다.

  • MSBuild의 .NET Core 프로젝트 지원 - csproj 프로젝트 형식이 간소화되어 프로젝트를 언로드할 필요 없이 수동으로 쉽게 편집할 수 있습니다.
  • 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 "편집"을 선택하기만 하면 .NET Core .csproj 파일을 편집할 수 있습니다.
  • csproj 파일 크기를 작게 유지하는 모든 소스 코드 파일 이름을 열거할 필요가 없는 프로젝트 파일에서 파일 와일드카드를 지원합니다.
  • 이제 NuGet 패키지 참조가 csproj 파일에 포함되어 모든 프로젝트 참조를 한 파일에 통합합니다.
  • .NET Core, .NET Standard 및 .NET Framework 프로젝트 간의 상호 운용성. 예를 들어 .NET Core 프로젝트에서 .NET Standard 프로젝트에 프로젝트 간 참조를 추가할 수 있습니다.
  • 한 프로젝트에서 여러 대상 프레임워크를 상호 지정.
  • 기존 project.json .NET Core 프로젝트가 Visual Studio에서 열릴 때 csproj로 자동으로 마이그레이션되거나, .NET CLI(명령줄 인터페이스)를 사용하여 수동으로 마이그레이션할 수 있습니다.
  • ASP.NET Core 애플리케이션을 위한 지속적 빌드 통합을 Docker 지원 기능으로 손쉽게 구성할 수 있고 Visual Studio IDE에서 Azure Container Service로의 지속적 빌드 제공을 손쉽게 구성할 수 있음.

자세한 내용은 .NET 블로그를 참조하세요.

유니버설 Windows 앱 개발 도구

업데이트된 .NET 네이티브 도구 체인

이 업데이트된 .NET 네이티브 도구 체인을 사용하면 몇몇 최적화 기능을 추가하여 Visual Studio에서 관리되는 UWP 앱의 런타임 성능을 높일 수 있습니다. 이 릴리스에는 중요한 고객 의견을 해결하고 도구 체인의 전반적인 품질을 향상시키는 600개가 넘는 버그 수정과 기능이 포함되어 있습니다.

5.3.0 Microsoft.NETCore.UniversalWindowsPlatform 패키지

.NET Core NuGet 프레임워크 라이브러리에 대한 이 업데이트는 고객이 보고한 여러 중요한 문제를 해결합니다. 이 새 버전으로 업데이트하려면 기존 UWP 프로젝트에서 NuGet 참조 관리자를 사용하면 됩니다. 또한 새로운 .NET Core 패키지는 .NET 네이티브 도구 체인을 포함합니다.

Windows 10 1주년 업데이트 SDK 및 에뮬레이터

Windows 10 1주년 업데이트용 Windows SDK 및 Windows Phone 에뮬레이터가 이 릴리스에 포함되어 있습니다.

  • 도구 상자에서 만드는 UI 요소에 이제는 더 적은 수의 XAML 태그가 사용되므로 XAML를 보다 쉽게 읽을 수 있습니다.
  • XAML 디자이너의 새로운 옵션 도구를 사용하면 개발자는 UI 테마 및 고대비 설정을 선택하여 디자인 화면에서 미리 볼 수 있습니다.
  • 속성 창의 값 편집기는 이제 "60+20" 같은 간단한 수학 방정식을 허용합니다. 방정식은 즉시 계산되어(이 예에서는 80) 결과 값을 XAML로 전달합니다.

시각적 자산을 만들기 위한 매니페스트 디자이너 기능

매니페스트 디자이너(그림 45)는 시각적으로 업그레이드되었으며 이제는 UWP 앱에 대한 시각적 자산을 생성하는 기능이 추가되었습니다. 이제 단일 소스 이미지를 사용하여 모든 대상 디바이스 유형에 맞는 크기로 타일, 로고, 아이콘 및 시작 화면을 만들 수 있습니다.

매니페스트 시각적 자산 생성기
(그림 45) 매니페스트 시각적 자산 생성기

UI 분석

이제 유니버설 Windows 플랫폼 도구를 통해 접근성 및 성능과 관련된 일반적인 문제를 검색할 수 있습니다. 진단 도구 창의 도구 선택 메뉴에서 "UI 분석" 도구를 활성화하면 문제 해결 방법을 설명하는 유용한 문서 링크와 함께 이러한 문제가 보고됩니다. UI 분석을 사용하여 개발하면 애플리케이션 개발 중에 UI 성능 및 접근성을 쉽게 확인할 수 있습니다.

Xamarin

Visual Studio 2017에는 Xamarin 4.4가 포함되어 있습니다. 자세한 내용은 Xamarin 릴리스 정보를 참조하세요.

이 Visual Studio용 Xamarin 4.4 릴리스는 Xamarin.iOS 10.8Xamarin.Android 7.2 릴리스를 업데이트합니다.

Xamarin에 대한 버그 수정

이 릴리스에는 다음과 같은 수정 사항이 포함되어 있습니다.

  • iOS 확장 앱이 빌드되지 않고 “cannot read Entitlements data”(자격 데이터를 읽을 수 없음) 오류가 발생합니다.(4.4.0.31)
  • Watson 보고서에 대한 기호를 포함합니다.(4.4.0.6)
  • 솔루션에 Wix 프로젝트도 포함된 경우 Android 배포에 실패합니다.(4.3.1.39)
  • 일부 iOS 프로젝트를 여는 중 교착 상태가 발생합니다.(4.3.1.39)
  • 두 번째 수준 PCL 참조에서 중단점이 적중되지 않습니다.(4.3.1.39)
  • CodeSignNativeLibraries 작업 누락으로 인한 iOS 문제를 해결합니다.(4.3.1.39)
  • Mac 서버에 연결한 후 스토리보드를 여는 중 오류가 발생합니다.(4.3.1.39)
  • Android 클래스 라이브러리 프로젝트에서는 [속성] 페이지에 “Android 버전을 사용하여 컴파일”만 포함해야 합니다.(4.3.1.39)
  • “도구 -> 옵션 -> Xamarin -> 기타” 탭으로 이동하면 Visual Studio가 중단됩니다.(4.3.1.39)
  • 일부 환경에서 플랫폼 간 솔루션을 로드하는 동안 Visual Studio가 중단됩니다.(4.3.1.1)
  • Microsoft.Csharp가 Visual Studio 프로젝트 템플릿에서 참조되지 않습니다.(4.3.1.1)
  • 구성된 사용자 셸에서 bash 구문을 사용하지 않는 경우 Mac 서버에 연결할 수 없습니다.( 4.3.1.1)
  • Test Cloud에 제출 옵션이 없습니다(Visual Studio 2013 및 Visual Studio 2015에서 해결됨).(4.3.1.1)
  • 변수/속성 이름이 다음 항목의 클래스 이름과 같은 경우 디버거가 혼동합니다.(4.3.1.1)
  • 자산 카탈로그의 이미지 집합 이름을 바꿀 수 없습니다.(4.3.1.1)
  • '리소스' 폴더가 조사식 확장 프로젝트에서 강제로 숨겨집니다.(4.3.1.1)
  • “리소스” 내의 “Assets.xcasset” 폴더가 tvOS 프로젝트에 대해 숨겨지지 않습니다.(4.3.1.1)

Apache Cordova용 Visual Studio Tools

이 Visual Studio 2017 릴리스에서는 다음과 같은 기능이 개선되었습니다.

  • Cordova 시뮬레이트 - 브라우저 기반의 새 시뮬레이터로 코딩을 빠르게 작성하고 브라우저에서 즉시 결과를 볼 수 있습니다(그림 46). Visual Studio는 실시간 다시 로드와 플러그 인 시뮬레이션이 가능하고 Ionic 프레임워크를 지원하기 때문에 시장에서 가장 빠른 개발자 워크플로를 제공합니다.
Cordova simulate
(그림 46) Cordova 시뮬레이트
  • iOS 10 및 XCode 8 지원 - 이제 iOS 개발을 위한 remotebuild 서버 에이전트의 업데이트에 XCode 8 지원이 포함됩니다.

  • 오류 색 지정 - 빌드 실패를 진단하려면 개발자가 빌드 출력을 검토해야 하는 경우가 종종 있기 때문에 오류를 쉽게 읽을 수 있도록 빌드 출력 창의 오류에 색을 지정하기 시작했습니다(그림 47). 또한 빌드 프로세스에서 오류가 발생한 위치를 개발자가 쉽게 식별할 수 있도록 빌드 프로세스의 단계를 설명하는 헤더가 추가되었습니다.

색이 지정된 오류
(그림 47) 오류 색 지정
  • 제품 내 구입 - Cordova 앱을 빠르게 구축할 수 있도록 경량 설치 기능을 도입한 것 외에도, 이제는 개발자가 지속적으로 개발하는 중에 Visual Studio 내에서 추가 빌드 조각을 얻을 수 있도록 경로를 추가했습니다(그림 48). 아직 Android 또는 Windows 구성 요소를 설치하지 않은 경우 Visual Studio 설치를 시작하고 설치 과정을 안내하는 배포 모음을 통해 얻을 수 있습니다.
제품 내 구입.
(그림 48) 제품 내 구입
  • 신속하고 안정되게 빌드 -새 Visual Studio 설치 관리자에는 철저히 검증된 타사 구성 요소 도구 체인을 오프라인으로 설치할 수 있는 기능이 통합되어 빠르게 빌드를 구축할 수 있고 빌드 문제를 쉽게 해결하고 수정할 수도 있습니다.

Important

Android 및 Windows용 빌드 도구와 에뮬레이터가 이제 선택 사항입니다. 빌드/배포 메뉴 모음을 통해 동적으로 가져올 수 있습니다. 이번에 발표된 Visual Studio 버전은 Windows 스토어 8.1 프로젝트를 지원하지 않습니다. Windows 10을 대상으로 하도록 Cordova 프로젝트를 업데이트하는 것이 좋습니다. 지원되는 최소 Cordova 버전이 6.0.0으로 상승했습니다. 6.0.0보다 낮은 Cordova 버전을 대상으로 하는 프로젝트를 Visual Studio 2017에서 빌드 및 배포하려면 config.xml에서 해당 프로젝트를 업그레이드해야 합니다.

Visual Studio용 Node.js 도구

Visual Studio용 Node.js 도구를 사용하여 Visual Studio를 강력한 Node.js 개발 환경으로 바꿀 수 있습니다. 이 릴리스는 안정성, 성능, 전반적인 제품 품질에 중점을 두었고 다음과 같이 다양한 측면을 개선했습니다.

  • 새 Salsa JavaScript 언어 서비스와 더 매끄럽게 통합.
  • 메모리 및 CPU 사용량 감소 및 프로젝트 로드 시간 단축.
  • Pug 템플릿 파일 지원.
  • 최신 프로젝트 템플릿.
  • Mocha 3.x 테스트 프레임워크 지원.
  • 많은 버그 수정.

놀라운 실력으로 이 Visual Studio용 Node.js 도구 릴리스를 가능하게 해주신 모든 참가자께 감사드립니다. 자세한 내용은 오픈 소스 GitHub의 Node.js 도구 프로젝트를 확인하세요.

Visual Studio Tools for Unity

Visual Studio를 사용하여 모든 플랫폼에서 가능한 Unity 게임을 작성하고 디버그할 수 있습니다. 이제 새로운 Visual Studio 2017 설치 관리자에서 "Unity를 사용한 게임 개발" 작업을 통해 Visual Studio Tools for Unity 3(그림 49)을 설치할 수 있습니다. Visual Studio Tools for Unity 3에서는 전반적인 제품 품질 외에도 Unity 개발자를 위한 코드 편집 및 디버깅 환경을 개선하는 데 중점을 두었으며, 개선 사항은 다음과 같습니다.

  • IntelliSense의 Unity 메시지 지원.
  • Unity 메시지 코드 색 지정.
  • Unity 디버거의 식 계산 개선.
  • 모든 Unity 형식에서 메시지를 받을 수 있도록 지원하기 위해 Unity 메시지 마법사 개선.
  • 다양한 버그 수정 및 최적화 작업.
Unity 메시지에 대한 코드 작성 세션.
(그림 49) Unity 메시지에 대한 코드 작성 세션

Redgate

Redgate 데이터 도구가 Visual Studio에 포함됨

Visual Studio 2017 DevOps 기능을 SQL Server 데이터베이스 개발로 확장하기 위해 Redgate SQL Prompt Core, Redgate SQL 검색 및 Redgate ReadyRoll Core로 구성된 Redgate Data Tools(Redgate 데이터 도구)를 데이터 스토리지 및 처리 작업에서 사용할 수 있습니다.

  • Visual Studio Enterprise 2017에 포함된 Redgate ReadyRoll Core는 마이그레이션 스크립트를 개발하고, 소스 제어를 사용하여 데이터베이스 변경 내용을 관리하고, SQL Server 데이터베이스 변경 내용을 애플리케이션 변경 내용과 함께 자동으로 안전하게 배포하는 데 도움이 됩니다.
  • Visual Studio Enterprise 2017에 포함된 Redgate SQL Prompt Core를 사용하면 지능형 코드 완성 기능을 통해 SQL을 더 빠르고 정확하게 작성할 수 있습니다. SQL 프롬프트는 데이터베이스 및 시스템 개체, 키워드를 자동으로 완성하고 입력 시 열을 제안합니다. 이렇게 하면 모든 열 이름이나 별칭을 기억할 필요가 없으므로 코드가 더 깔끔해지고 오류가 줄어듭니다.
  • 모든 버전의 Visual Studio 2017에 포함된 Redgate SQL 검색은 여러 데이터베이스에서 SQL 조각 및 개체를 빠르게 찾을 수 있도록 하여 생산성을 높입니다.

NuGet

Visual Studio 2017에는 NuGet 4.0이 포함되어 있습니다. 이 릴리스는 대다수 프로젝트 유형에 사용되는 패키지 참조를 지원하고 품질과 성능을 개선하는 데 중점을 두었습니다.

  • 이제 WPF, WindowsForms 및 UWP 프로젝트에서 패키지 참조를 사용하여 패키지를 관리할 수 있습니다.
  • 경량 솔루션 복원에 대한 NuGet 복원 지원이 개선되었습니다. 이제 프로젝트를 로드하지 않고도 복원 작업을 수행할 수 있습니다.
  • .NET Core 및 ASP.NET Core 프로젝트의 패키지가 이제 패키지 참조를 사용하여 관리됩니다.
  • Visual Studio 2017 이상에서 컴퓨터 전체 NuGet.config는 이제 %PROGRAMFILES(X86)%\NuGet\Config\NuGet.config에 있습니다. 앞으로 v4.0.0 이상 nuget.exe 컴퓨터 전체 구성에 대한 새 위치도 고려합니다. 프로그램 데이터에 있는 NuGet.config는 더 이상 암시적으로 참조되지 않으며 nuget.config의 계층적 병합에 고려되지 않습니다.

XAML 앱용 도구

XAML 편집하며 계속하기

이제 WPF 또는 유니버설 Windows 앱이 실행되는 동안 Visual Studio에서 XAML을 편집할 수 있습니다. Visual Studio에서 앱을 디버그하는 동안 XAML 코드 편집기에서 태그를 변경할 수 있으며, 다시 컴파일하지 않아도 변경 내용이 실행 중인 앱에 반영됩니다.

XAML 편집기 생산성 향상

  • IntelliSense 필터링 - XAML을 입력하면 완성 목록에 일치하는 형식만 표시되고 가장 가깝게 일치하는 항목이 선택됩니다.
  • x:Bind용 IntelliSense - 경로 및 이벤트에 바인딩할 때 x:Bind에 IntelliSense 완성 기능이 사용됩니다.
  • 네임스페이스 완성 - 네임스페이스에 대한 참조가 없으면(그림 50) 입력하는 동안 IntelliSense 지원이 제공되지 않습니다. 입력이 완료되면 형식에 대한 접두사를 생성 및 삽입하고 XAML 문서에 네임스페이스 정의를 추가하기 위한 전구 제안 지원을 받을 수 있습니다.
IntelliSense_without_namespace 대한 코드 완성 세션
(그림 50) 네임스페이스가 없는 IntelliSense
  • 네임스페이스에 대한 참조가 이미 있으면 접두사가 필요한 형식일 때 IntelliSense가 접두사 자동 완성 기능을 제안합니다.

  • 네임스페이스 접두사 이름 바꾸기 리팩터링 - 접두사에 커서가 있을 때 상황에 맞는 메뉴 또는 바로 가기 키 Ctrl+R+R을 사용하여 이름 바꾸기 작업(그림 51)을 호출할 수 있습니다. 또한 변경 내용을 적용하기 전에 미리 볼 수 있습니다.
네임스페이스 접두사 이름 바꾸기
(그림 51) 네임스페이스 접두사 이름 바꾸기

  • 네임스페이스 제거 및 정렬 - 이제 상황에 맞는 메뉴 또는 바로 가기 키 Ctrl+R+G를 사용하여 불필요한 네임스페이스를 제거(그림 52)하고 정렬할 수 있습니다. XAML 문서에 불필요한 네임스페이스가 있으면 전구가 표시되고 네임스페이스를 제거할 수 있는 옵션이 제공됩니다.
불필요한 네임스페이스를 제거하라는 전구 표시
(그림 52) 불필요한 네임스페이스를 제거하라는 전구 표시

  • XAML 편집기에 대한 .editorconfig 지원 - .editorconfig 파일에서 indent_style, indent_size 및 tab_width 설정을 정의할 수 있으며 이 설정은 도구 > 옵션에 정의된 설정 대신 사용됩니다.

  • XAML 편집기의 구조 시각화 도우미 - 이제 구조 시각화 도우미(즉, 들여쓰기 가이드)(그림 53)가 Visual Studio에 기본 제공되며 별도의 확장이 필요하지 않습니다. 이 기능을 사용하면 작업 중인 코드 블록의 컨텍스트를 스크롤 없이 한눈에 파악할 수 있습니다.

XAML 편집기의 구조 시각화 도우미
(그림 53) XAML 편집기의 구조 시각화 도우미

XAML 성능 개선

  • XAML 탭 전환 성능 향상 - XAML 탭 전환 성능이 대폭 향상되었습니다. 샘플 고객 프로젝트에서 전환 시간이 90% 넘게 단축되었습니다.
  • XAML 편집기 입력 지연 해결 - XAML 입력이 그 어느 때보다 더 빨라졌습니다. XAML 편집기 입력 지연을 줄이기 위해 여러 가지 투자가 이루어졌으며, 대부분의 개발자는 XAML 편집기와 XAML IntelliSense의 응답성이 향상된 것을 느낄 수 있을 것입니다. 특히 타사 컨트롤 또는 대형 컨트롤 라이브러리를 사용하는 프로젝트에서 XAML 파일을 편집할 때 가장 확실하게 느낄 수 있습니다.

Data Tools 및 SQL Server

SQL Server Data Tools

Visual Studio 2017에는 SQL Server Data Tools의 최신 업데이트가 포함되어 있으며, 이 업데이트를 통해 Azure SQL DatabaseSQL Server 2016의 최신 기능이 지원됩니다.

이 릴리스에는 지원되는 모든 버전의 SQL Server와 데이터베이스 플랫폼(온-프레미스와 클라우드 모두)에서 Visual Studio로 간편하게 데이터베이스를 개발하고 테스트하고 배포할 수 있는 특징이 통합되었습니다. 또한 릴리스는 데이터베이스 프로그래밍 기능 노출 영역이 강화되었으며, SQL Server Data Tools의 SQL 연결 환경을 개선하여 이제는 간단한 클릭으로 연결할 수 있는 SQL Server 및 Azure SQL 데이터베이스를 자동으로 검색합니다.

그 밖에도 Visual Studio 2017에서는 Azure Active Directory 통합 및 암호 인증뿐 아니라 새로운 Azure SQL Database 인증 형식도 처리합니다.

개발자 분석 도구

Visual Studio 2017에는 다음과 같은 향상된 기능과 함께 개발자 분석 도구 v8.6이 포함되어 있습니다.

  • 이제 CodeLens가 데이터를 Application Insights 리소스로 전송하는 프로젝트에서 디버그 및 라이브 원격 분석 데이터를 둘 다 표시합니다.
  • 예외에 대한 CodeLens는 예외가 사용자에게 미치는 영향을 보여 주기 위해 애플리케이션 분석에 연결합니다.
  • CodeLens는 Application Insights SDK를 사용하는 프로젝트에 로컬 디버그 세션의 요청을 표시합니다.
  • 이제 요청 및 예외에 대한 CodeLens를 Visual Basic 프로젝트에서 사용할 수 있습니다.
  • 이제 Visual Studio에서 앱을 게시한 후 알림 메시지에 라이브 메트릭이 표시됩니다.
  • 이제 Application Insights 가격 정보가 구성 창에 표시됩니다.
  • 이제 가용성 이벤트가 검색 및 추세 도구에 표시됩니다.
  • 이제 검색 및 진단 도구의 이벤트는 SDK의 적응 샘플링을 기반으로 발생한 횟수를 표시합니다.
  • CodeLens에서는 Application Insights SDK를 사용하는 프로젝트에 대한 로컬 디버그 세션 중 발생한 예외를 보여 줍니다.
  • Application Insights 구성 창에 대한 새로운 디자인.
  • 이제 예외용 CodeLens에 애플리케이션 분석에 대한 링크가 있어서 예외가 사용자에게 미친 영향을 확인할 수 있습니다.
  • 이제 프로젝트에 Application Insights를 추가할 때 페이지 보기 원격 분석을 수집하기 위한 Application Insights JavaScript SDK가 추가됩니다.
  • 이제 Visual Studio에서 앱을 게시할 때 주석 게시가 Application Insights 리소스에 전송됩니다.
  • 이제 빨간색 및 노란색 Application Insights CodeLens 표시기에 대해 스크롤 막대 표식이 표시됩니다.

Application Insights에 대한 자세한 내용은 Microsoft Azure 설명서를 참조하세요.

Visual Studio용 Office 개발자 도구

이 릴리스에는 다음과 같은 최신 기능과 업데이트를 제공하는 Office 개발자 도구가 포함되어 있습니다.

  • Excel, Word, PowerPoint 및 Outlook과 관련된 새 Office 추가 기능 템플릿
  • 추가 기능 명령, 패브릭 UI, 새 버전의 Office.js와 같은 새로운 Office 추가 기능 지원
  • 새 Office 추가 기능 사용을 시작하는 방법을 보여 주는 템플릿의 새로운 시작 코드
  • SharePoint 솔루션 및 추가 기능 템플릿에서 SharePoint 2016 지원

라이브 아키텍처 종속성 유효성 검사

Visual Studio Enterprise에서 종속성 유효성 검사 다이어그램(즉, 레이어 다이어그램)을 설정한 경우 이제 코드 편집기에 코드를 입력할 때 아키텍처 종속성 규칙 위반에 대한 알림이 실시간으로 제공됩니다(그림 54). 오류 목록에 오류가 표시되고, 텍스트 편집기의 물결선은 정확한 위반 위치를 보여 줍니다. 이제 원치 않는 종속성이 늘어날 가능성이 줄었습니다.

라이브 아키텍처 종속성 유효성 검사
(그림 54) 라이브 아키텍처 종속성 유효성 검사

개발자 명령 프롬프트

Visual Studio 2017 개발자 명령 프롬프트 스크립트가 새로운 설치 환경을 지원하도록 리팩터링되었습니다.

  • 환경 변수에는 설치된 워크로드만 반영됩니다.
  • Vosual Studio 개발자 명령 프롬프트 바로 가기는 이전 버전과 호환되어야 합니다.
  • 이제 명령줄 인수를 통해 개발자 명령 프롬프트 스크립트를 구성할 수 있습니다.
    • 자세한 내용을 보려면 명령 프롬프트에서 common7\tools\vsdevcmd.bat -help(Visual Studio 설치 디렉터리에서)를 호출하세요.

.NET용 Azure SDK

이제 새로운 Visual Studio 설치 관리자를 사용하여 .NET Visual Studio용 Azure SDK를 설치할 수 있습니다. 이전에 웹 플랫폼 설치 관리자를 사용하여 .NET용 Azure SDK를 설치했다면, 이제는 새로운 Visual Studio 설치 관리자로 Azure 워크로드를 설치하여 동일한 구성 요소를 얻을 수 있습니다. 설치되는 패키지는 SDK 2.9.5 버전과 기능 수준이 동일합니다. 이 버전의 Visual Studio 및 모든 향후 버전의 경우 Visual Studio 설치 관리자를 통해 .NET용 Azure SDK가 제공됩니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0.1

릴리스 날짜: 2017년 3월 14일

15.0.1에서 해결된 주요 문제

고객이 보고한 문제 중 15.0.1에서 해결된 문제는 다음과 같습니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0.2

릴리스 날짜: 2017년 3월 28일

15.0.2에서 해결된 주요 문제

고객이 보고한 문제 중 15.0.2에서 해결된 문제는 다음과 같습니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0.3

릴리스 날짜: 2017년 3월 31일

15.0.3의 업데이트 요약

이제 Visual Studio 2017용 Xamarin.VS 확장에서 Xcode 8.3, iOS 10.3, watchOS 3.2 및 tvOS 10.2 도구와 API를 지원합니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0.4

릴리스 날짜: 2017년 5월 23일

15.0.4에서 해결된 주요 문제

오프라인 설치 시나리오에는 더 이상 인터넷 액세스가 필요하지 않습니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0.5

릴리스 날짜: 2017년 9월 18일

15.0.5에서 해결된 주요 문제

고객이 보고한 문제 중 15.0.5에서 해결된 문제는 다음과 같습니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0.6

릴리스 날짜: 2017년 11월 14일

15.0.6의 업데이트 요약

Visual Studio 2017 버전 15.0 보안 권고 알림

Microsoft는 .NET Core 및 ASP.NET Core에 대한 보안 권고를 릴리스했습니다. 자세한 내용은 .NET CoreASP.NET Core 리포지토리에 있는 해당 공지 사항에서 확인할 수 있습니다. 다음 정보를 확인하세요.

CVE-2017-8585 형식이 잘못된 인증서로 인해 서비스 거부가 발생할 수 있음

.NET Core 1.0, 1.1 및 2.0에는 잘못된 형식의 인증서 또는 기타 ASN.1 형식의 데이터로 인해 Linux 및 macOS의 무한 루프를 통해 서비스 거부가 발생할 수있는 보안 취약성이 있습니다. 시스템 관리자는 .NET Core 런타임을 버전 1.0.8, 1.1.5 및 2.0.1로 업데이트하는 것이 좋습니다. 개발자는 .NET Core SDK를 버전 2.0.3 또는 1.1.5로 업데이트하는 것이 좋습니다.

CVE-2017-8700 CORS 바이패스로 정보 유출 가능

ASP.NET 코어 1.0 및 1.1에는 CORS(Cross-Origin Resource Sharing)를 우회하여 정보 유출로 이어질 수 있는 보안 취약성이 있습니다.

CVE-2017-11879 오픈 리디렉션으로 권한 상승이 발생할 수 있습니다

오픈 리디렉션이 존재하는 ASP.NET Core 2.0에는 권한 상승으로 이어질 수 있는 보안 취약성이 있습니다.

CVE-2017-11770 서비스 거부 취약성

잘못된 요청으로 인해 서비스 거부가 발생할 수있는 Windows Http.Sys를 통해 애플리케이션을 호스팅할 때 ASP.NET Core 1.0, 1.1 및 2.0에 보안 취약성이 있습니다. ASP.NET Core 1.0 및 ASP.NET Core 1.1로 만든 새로운 프로젝트는 이제 위의 보안 업데이트가 포함된 패키지 버전을 사용합니다. 기존 프로젝트의 경우 사용자는 NuGet 패키지 관리 대화 상자를 사용하여 패키지를 최신 버전으로 업데이트 할 수 있습니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0.7

릴리스 날짜: 2017년 12월 6일

15.0.7의 업데이트 요약

Visual Studio 2017 버전 15.0 보안 권고 알림

Microsoft는 ASP.NET Core에 대한 보안 권고를 릴리스했습니다. 자세한 내용은 ASP.NET Core 리포지토리에 있는 해당 공지 사항에서 확인할 수 있습니다. 다음 정보를 확인하세요.

CVE-2017-8700 CORS 바이패스로 정보 유출 가능

ASP.NET 코어 1.0 및 1.1에는 CORS(Cross-Origin Resource Sharing)를 우회하여 정보 유출로 이어질 수 있는 보안 취약성이 있습니다. ASP.NET Core 1.0 및 ASP.NET Core 1.1로 만든 새로운 프로젝트는 이제 위의 보안 업데이트가 포함된 패키지 버전을 사용합니다. 기존 프로젝트의 경우 사용자는 NuGet 패키지 관리 대화 상자를 사용하여 패키지를 최신 버전으로 업데이트 할 수 있습니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0.8

릴리스 날짜: 2018월 1월 9일

15.0.8의 업데이트 요약

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2018-0786 X509 인증서 유효성 검사의 보안 기능 우회

Microsoft는 이 보안 권고를 릴리스하여 .NET Core 1.0, 1.1 및 2.0.의 공용 버전에 있는 취약성에 대한 정보를 제공합니다. 이 권고는 또한 개발자가 자신의 애플리케이션을 올바르게 업데이트하기 위해 수행할 수 있는 지침을 제공합니다. 이 보안 권고는 UWP용 .NET 네이티브에도 적용됩니다.

Microsoft는 공격자가 특정 사용에 대해 잘못 표시된 인증서를 제공할 수 있으나 구성 요소에서 이를 해당 용도로 사용하는 .NET Core 공용 버전의 보안 취약성을 알고 있습니다. 이 작업은 확장된 키 사용 태깅을 무시합니다.

보안 업데이트는 .NET Core 구성 요소가 인증서의 유효성을 완전히 검사함으로써 취약점을 해결합니다. 시스템 관리자는 .NET Core 런타임을 버전 1.0.9, 1.1.6 및 2.0.5로 업데이트하는 것이 좋습니다. 개발자는 .NET Core SDK를 버전 2.1.4 또는 1.1.7로 업데이트하는 것이 좋습니다.

CVE-2018-0764 XML 문서를 구문 분석 시 서비스 거부

Microsoft는 이 보안 권고를 릴리스하여 .NET Core 1.0, 1.1 및 2.0.의 공용 버전에 있는 취약성에 대한 정보를 제공합니다. 이 권고는 또한 개발자가 자신의 애플리케이션을 올바르게 업데이트하기 위해 수행할 수 있는 지침을 제공합니다.

Microsoft는 .NET Core의 모든 공용 버전에서 잘못된 XML 문서 처리로 인한 서비스 거부 취약점에 대해 알고 있습니다. 이 취약점을 악용하는 공격자는 .NET 애플리케이션에 대한 서비스 거부로 이어질 수 있습니다. 인증되지 않은 원격 공격자가 .NET Core 애플리케이션에 특별히 구성된 요청을 발행하여 이 취약점을 악용할 수 있습니다.

업데이트는 .NET Core에서 XML 문서를 처리하는 방법을 수정하여 취약점을 해결합니다. 시스템 관리자는 .NET Core 런타임을 버전 1.0.9, 1.1.6 및 2.0.5로 업데이트하는 것이 좋습니다. 개발자는 .NET Core SDK를 버전 2.1.4 또는 1.1.7로 업데이트하는 것이 좋습니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0.9

릴리스 날짜: 2018년 2월 2일

15.0.9의 업데이트 요약

  • MSVC 컴파일러가 Spectre variant 1의 인스턴스를 감지하면 자동으로 추론 장벽을 삽입하는 /Qspectre 스위치를 지원하도록 업데이트되었습니다. /Qspectre에 대한 자세한 내용은 Visual C++ 팀 블로그를 참조하세요.
  • 다운로드 오류를 해결하기 위해 Java™ Development Kit 8, 업데이트 161(JDK 버전 8u161)로 업데이트했습니다.

릴리스 정보 아이콘 Visual Studio 2017 버전 15.0.10

릴리스 날짜: 2018년 2월 21일

15.0.10의 업데이트 요약

팀 탐색기는 TLSv1.2를 지원합니다. Visual Studio에서 제공되는 Git 및 Git 자격 증명 관리자 구성 요소를 업데이트했습니다. 선택적 Windows용 Git 구성 요소도 업데이트되었습니다. 이 업데이트를 사용하면 Git에서 사용되지 않는 TLSv1 및 TLSv1.1에 대한 지원 대신 TLSv1.2를 지원하는 서비스에 연결할 수 있습니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0.11

릴리스 날짜: 2018년 3월 13일

15.0.11의 업데이트 요약

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2018-0875 .NET Core용 Microsoft 보안 권고

Microsoft는 악의적인 파일이나 웹 요청이 DoS(Denial of Service) 공격을 유발할 수 있다는 .NET Core 공개 버전의 보안 취약점을 알고 있습니다.

  • 시스템 관리자는 .NET Core 런타임을 버전 1.0.10, 1.1.7 및 2.0.6으로 업데이트하는 것이 좋습니다. 개발자는 .NET Core SDK를 버전 1.1.8 또는 2.1.101으로 업데이트하는 것이 좋습니다.

릴리스 정보 아이콘 Visual Studio 2017 버전 15.0.12

릴리스 날짜: 2018년 4월 10일

15.0.12의 업데이트 요약

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2018-1037 Microsoft Visual Studio 정보 공개 취약성에 대한 Microsoft 보안 권고

Visual Studio에서 PDB(프로그램 데이터베이스) 파일을 컴파일하는 동안 초기화되지 않은 메모리의 제한된 콘텐츠를 잘못 공개하는 경우 정보 공개 취약성이 존재합니다. 이 정보 공개를 활용하는 공격자는 PDB 파일을 컴파일하는 데 사용되는 Visual Studio 인스턴스에서 초기화되지 않은 메모리를 볼 수 있습니다.

취약성을 활용하려면 공격자가 취약한 버전의 Visual Studio를 사용하여 만든 영향을 받는 PDB 파일에 액세스해야 합니다. 공격자는 개발자가 이 정보 공개를 강제로 생성하도록 할 방법이 없습니다.

보안 업데이트는 프로젝트가 컴파일될 때 PDB 파일이 생성되는 방법을 수정하여 취약성을 해결합니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0.13

릴리스 날짜: 2018년 4월 26일

15.0.13의 업데이트 요약

  • Java™ Development Kit 8, 업데이트 172(JDK 버전 8u172)로 업데이트했습니다.

릴리스 정보 아이콘 Visual Studio 2017 버전 15.0.14

릴리스 날짜: 2018년 5월 31일

15.0.14의 업데이트 요약

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2018-11235 Git 보안 취약성에 대한 Microsoft 보안 권고

Git 커뮤니티에 공개된 Git 보안 취약성을 해결했습니다. 취약성으로 인해 사용자가 악성 리포지토리를 복제할 때 임의의 코드가 실행될 수 있습니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0.15

릴리스 날짜: 2018년 7월 10일

15.0.15의 업데이트 요약

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2018-8172 Visual Studio 원격 코드 실행 취약성

특별히 구성된 프로젝트 또는 리소스 파일을 열어 사용자 컴퓨터의 악용으로 이어질 수 있는 원격 코드 실행 취약성입니다. 보안 업데이트는 Visual Studio에서 파일의 원본 태그를 확인하는 방법을 수정하여 취약성을 해결합니다.

CVE-2018-8260 .NET Framework 원격 코드 실행 취약성

원격 코드 실행 취약성은 공격자가 현재 사용자의 컨텍스트에서 임의 코드를 실행하도록 허용하여 사용자 컴퓨터의 악용으로 이어질 수 있는 .NET 소프트웨어에 존재합니다. 보안 업데이트는 .NET에서 파일의 원본 태그를 확인하는 방법을 수정하여 취약성을 해결합니다.

CVE-2018-8232 .NET Microsoft Macro Assembler 변조 취약성

Microsoft Macro Assembler 부적절한 코드 유효성 검사와 관련된 변조 취약성입니다. 보안 업데이트는 Microsoft Macro Assembler에서 코드 논리의 유효성을 올바르게 검사하여 취약성을 해결합니다.

CVE-2018-8171 ASP.NET Core 보안 기능 우회 취약성

ASP.NET Core 보안 기능 우회 취약성은 공격자의 무한 인증 시도로 이어질 수 있는 잘못된 로그인 시도 횟수의 유효성이 검사되지 않는 경우 존재합니다. 업데이트는 잘못된 로그인 시도 횟수의 유효성을 검사하여 취약성을 해결합니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0.16

2018년 8월 2일 릴리스

15.0.16의 업데이트 요약

  • 이 릴리스는 현재 Java™ Development Kit 8, 업데이트 181(JDK 버전 8u181)을 설치합니다.

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2018-8356 .NET Core 보안 기능 우회 취약성

Microsoft는 .NET Core에서 인증서의 유효성을 올바르게 확인하지 않는 경우 존재하는 보안 기능 우회 취약점을 알고 있습니다. 이 취약점을 악용하는 공격자는 인증서를 요구하는 경우 만료된 인증서를 내보일 수 있습니다. 업데이트를 통해 .NET Core에서 인증서 유효성 검사를 처리하는 방법을 수정하여 취약점을 해결합니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0.17

릴리스 날짜: 2018년 8월 14일

15.0.17의 업데이트 요약

Visual Studio 2017 버전 15.0 보안 권고 알림

CVE-2018-0952 진단 허브 표준 수집기 권한 상승 취약성

Visual Studio 서비스에는 권한 상승 취약성이 있으며, 이로 인해 파일을 쓸 때 관리자가 아닌 사용자가 시스템 권한을 가질 수 있습니다. 이를 활용하는 공격자는 사용자 수준 액세스 권한만 있는 상태에서 시스템으로 파일을 작성할 수 있습니다. 이 보안 업데이트는 현재 사용자로 가장하여 파일 위치에 대한 액세스의 유효성을 검사하여 이 문제를 해결합니다.


릴리스 정보 아이콘 Visual Studio 2017 버전 15.0.18

릴리스 날짜: 2018년 8월 28일

15.0.18에서 해결된 주요 문제


알려진 문제

언제나 여러분의 의견을 기다리고 있습니다. 최신 문제를 찾고, 새 문제를 기록하고, 기존 문제를 추천하려면 개발자 커뮤니티 사이트를 방문하세요.


피드백 및 제안

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


Blogs

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

개발자 도구 블로그


Visual Studio 2017 릴리스 정보 기록

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


맨 위로 이동