Visual Studio IconVisual Studio 2017 버전 15.7 릴리스 정보


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



참고 항목

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


지원 기간

이 버전은 이제 지원되지 않습니다. Visual Studio 지원에 대한 자세한 내용은 Visual Studio 2017에 대한 지원 정책을 검토하세요.

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

Visual Studio 블로그

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

Visual Studio 2017 버전 15.7 릴리스


Important

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


15.7의 주요 새로운 기능 요약

15.7에서 해결된 주요 문제

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

고객이 보고하여 Visual Studio 2017 버전 15.7에서 해결된 모든 문제를 참조하세요.

The Developer Community Portal


15.7의 새로운 기능에 대한 세부 정보

Release Notes IconVisual Studio 2017 버전 15.7.0

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

15.7의 새로운 기능

성능

  • 이 릴리스에서는 C# 및 Visual Basic 프로젝트에 대한 솔루션 로드 시간이 평균 20% 개선되었습니다.
  • 대형 .NET Core 프로젝트에서 IntelliSense를 로드하는 데 걸리는 시간을 25% 줄였습니다.
  • Git에서 분기를 전환할 때 솔루션 및 프로젝트를 다시 로드할 필요가 없는 경우 모달 진행률 대화 상자가 제거됩니다.

Visual Studio 설치

  • 업데이트 대화 상자에서는 새로운 기능, 다운로드 크기 및 최신 업데이트 버전과 같은 업데이트에 대한 자세한 정보를 제공합니다.
  • 향상된 저장 환경: Visual Studio를 업데이트하기 전에 먼저 보류 중인 모든 변경 내용을 로컬로 저장한 후에 업데이트를 시작합니다. 업데이트 대화 상자에 지금 업데이트 대신 모두 저장 및 업데이트 단추가 표시됩니다.
  • 다운로드 캐시, 공유 구성 요소, 일부 SDK 및 도구를 다른 드라이브로 이동하여 시스템 드라이브의 설치 공간을 줄였습니다(그림 1).
Install Locations
(그림 1) 설치 위치 선택

관리할 수 있는 위치는 세 곳이며, 이들 위치는 처음 설치할 때만 설정할 수 있습니다.

  • Visual Studio 핵심 제품: 이 위치는 설치하기로 선택한 Visual Studio 버전에 대한 특정 파일을 위한 것입니다.
  • 다운로드 캐시: 설치 파일과 매니페스트가 이 위치에 다운로드됩니다. 확인란의 선택을 취소하여 다운로드 캐시를 유지하지 않으려면 설치가 완료된 후에 해당 파일이 제거됩니다.
  • 공유 구성 요소, 도구 및 SDK: 이 위치는 Visual Studio 병렬 설치에서 공유하는 파일에 대한 위치입니다.

참고 항목

설치된 위치와 다른 규칙이 적용되는 도구 및 SDK는 이 드라이브에 설치되지 않습니다. 이는 도구/SDK 특정 규칙이 우선 적용되기 때문입니다.

참고 항목

사용자는 패키지 캐시를 사용하지 않도록 설정하고 위치를 설정할 수 있습니다.

Visual Studio IDE

이제는 장기 실행 작업에서 Visual Studio를 사용 중인 상태로 유지하고 있음을 나타내는 대화 상자 창(그림 2)에서 화면 판독기(예: NVDA, 내레이터 등)에 액세스할 수 있습니다. Visual Studio에서 대화 상자를 표시하면 화면 판독기에서 오디오 큐를 재생하여 새 정보가 화면에 표시됩니다. 내레이터에서 뷰 변경 명령을 호출하여 사용자가 대화 상자의 내용을 읽거나, 사용 가능한 경우 취소 단추와 상호 작용할 수 있습니다.

Wait dialog
(그림 2) 대화 상자 창이 로딩되면서 화면 판독기에 액세스할 수 있음

참고 항목

내레이터를 완전하게 지원하려면 Windows 10 Redstone 4(RS4) 빌드를 사용해야 합니다.

Visual C++ 개선 사항

  • 이 릴리스에는 CVE-2018-1037에서 설명한 대로 PDB 파일의 로컬 정보 공개 취약성에 대한 픽스가 포함되어 있습니다.
  • C5045는 컴파일러에서 Spectre 완화를 삽입한 코드 패턴이 표시되는 새로운 컴파일러 진단입니다.
  • Visual Studio의 번들된 CMake 설치가 3.10에서 3.11로 업그레이드되었습니다.
  • CMake 프로젝트는 VCXProj와 같은 C++ 코드의 정적 분석을 지원합니다.
  • MSVC는 컴파일 시간에 std::string_view를 더 유용하게 만드는 P0426R1 "std::char_traits" C++ 17 기능을 지원합니다.
  • 각 단위 테스트 위에 CodeLens를 사용하여 테스트 상태를 실행, 디버그 및 표시합니다(그림 3).
Use CodeLens above each of your unit tests
(그림 3) 각 단위 테스트 위에 CodeLens 사용
  • C++용 Visual Studio iOS 개발 도구가 Xcode 9에서 작동하도록 업데이트되었습니다.
  • 규칙 집합 구성에 따라 C++ 코드 분석 도구에서 경고를 필터링하는 /analyze:ruleset 옵션이 cl.exe에 추가되었습니다. 이로 인해 컴파일러와 IDE의 독립 실행형 호출 간에 일관된 환경이 제공되고 규칙 집합에 언급된 규칙만 실행하여 성능이 향상됩니다.
  • 생성자 상속은 이제 다른 기본 클래스 멤버를 상속하는 것과 동일하게 작동합니다. 이전에는 이 작업이 원본에 위임하는 새 생성자를 선언하여 수행되었습니다. 이 변경으로 인해 기본 클래스 생성자가 파생 클래스에서 파생 클래스 생성자인 것처럼 표시되므로 C++의 일관성이 향상됩니다.
  • 모든 형식을 형식이 아닌 매개 변수로 사용하도록 설계된 템플릿은 이제 템플릿 매개 변수 목록에서 auto 키워드를 사용할 수 있습니다. 이렇게 하면 인스턴스화 시점에서 템플릿 매개 변수의 형식을 확인하고 제공할 필요 없이 인스턴스화에서 모든 형식을 사용할 수 있습니다.
  • std::launder가 이제 지원됩니다.
  • 2단계 이름 조회는 거의 모든 경우에 올바르게 작동합니다. 오버로드된 연산자에 종속되지 않는 함수 호출과 같은 일부 에지의 경우는 향후 업데이트에서 수정될 예정입니다.
  • MSVC 컴파일러 도구 집합은 C++ 17 표준을 준수합니다. /Zc:__cplusplus 스위치를 사용하여 컴파일할 때 __cplusplus 매크로의 값에서 올바른 표준 버전 번호를 반영합니다.
  • Visual C++ 런타임에서 이제 Spectre 변형 1 취약성에 대한 완화를 지원합니다. 이 도구 집합에는 완화된 버전과 완화되지 않은 버전의 DLL이 포함되어 있습니다. 또한 코드 생성 속성 페이지에서 Spectre 완화 기능을 사용하면 완화된 버전의 DLL에 연결됩니다. Spectre 완화에 대한 자세한 내용은 Visual C++ 팀 블로그를 참조하세요.
  • 최적화되지 않은 빌드(/Od)의 Spectre 완화에 대한 컴파일러 지원이 활성화되었습니다.
  • /Zf 스위치가 이제 기본적으로 활성화되어 여러 컴파일 프로세스를 사용할 때 PDB가 더 빨리 생성됩니다.
  • /await에 대한 코드 생성이 크게 향상되었습니다. 코드 생성기에 코루틴을 다시 구현하여 안정성이 향상되고 대부분의 버그가 수정되었습니다.
  • CMake 대상 보기는 솔루션 탐색기에서 CMake 프로젝트의 원본을 표시하는 다른 방법을 제공합니다. 즉 폴더 기반 보기 대신 코드를 개별 CMake 대상으로 구성합니다(그림 4). 이 구성은 CMake "Visual Studio" 생성기에서 만든 프로젝트 및 솔루션 파일의 구성과 비슷합니다.
CMake Targets View
(그림 4) CMake 대상 보기
  • CMake 프로젝트에 속한 원본 파일(.cpp)은 CMake 메뉴를 통하거나 솔루션 탐색기에서 원본 파일을 마우스 오른쪽 단추로 클릭하여 개별적으로 작성할 수 있습니다.
  • 태그 구문 분석 오류의 원인이 되는 알 수 없는 매크로에 녹색 물결선 밑줄이 표시됩니다. 빠른 작업을 통해 매크로를 C++ 힌트 파일에 자동으로 추가하여 문제를 해결할 수 있습니다. 솔루션 또는 폴더의 모든 태그 구문 분석 오류는 프로젝트 메뉴에서 태그 구문 분석 오류 표시를 클릭하여 나열할 수 있습니다.
  • 폴더 열기에서 빠른 작업을 사용하여 CppProperties.json 포함 경로에 헤더를 추가합니다.
  • Linux 및 Unix 유사 시스템의 헤더가 이제 Windows의 IntelliSense에서 사용하기 위해 자동으로 다운로드됩니다. 또한 이러한 기능은 Linux 네이티브 플랫폼 개발에 향상된 IntelliSense 환경을 제공하는 데도 사용됩니다.
  • 지침 지원 라이브러리의 사용과 관련하여 C++ Core Guidelines의 항목을 적용하는 새로운 5개 규칙이 추가되었습니다.
  • 집계 형식에서 공용 기본 클래스를 허용하므로 상용구 생성자를 작성하지 않고 집계 초기화 구문을 사용하여 초기화할 수 있습니다. 중괄호로 묶은 초기화 목록에서 기본 클래스가 먼저 초기화된 다음, 데이터 멤버가 초기화됩니다.
  • 함수에 대한 템플릿 인수 추론이 템플릿 클래스의 생성자로 확장됩니다. 이에 따라 클래스 템플릿을 만들 때 인수를 더 이상 지정할 필요가 없습니다.
  • C++ 17에서는 한정 변환의 정의가 변경되었습니다. 이전에는 이러한 변환이 여러 수준 포인터와 혼합 포인터 간에 허용되어 해당 한정자를 첫 번째 수준 이외의 수준에 추가할 수 있는 경우가 있었지만 배열에도 마찬가지로 적용되지 않았습니다.
  • 멤버 액세스, 할당 및 배열 인덱스와 같이 이전에 컴파일러 구현 세부 정보에 남겨진 주요 C++ 연산자에 대한 식 평가 순서가 구체화되었습니다.
  • using 선언을 확장하여 variadic 기본 클래스 멤버에 대한 팩 확장 의미 체계를 지원합니다. 그러면 파생 클래스 내에서 사용할 수 있습니다.
  • SFINAE 식이 이제 완전히 구현되었고 해당 표준 템플릿 라이브러리가 변경되었습니다.
  • ISO C++ 17 표준을 준수하는 병렬 알고리즘이 구현되었습니다. 자세한 내용은 [VSInstallDir]\VC\Tools\MSVC\<ver>\include\yvals.h에 있는 원본 파일을 참조하세요.
  • /std:c++17 모드에서 C4834 경고 수준("'nodiscard' 특성이 포함된 함수의 반환 값을 버리는 중")이 W3에서 W1로 높아졌습니다. 또한 컴파일러에서 auto로 선언된 형식이 아닌 템플릿 인수의 형식을 추론할 수 있습니다.
  • /Debug:fastlink PDB를 사용한 대형 솔루션 디버깅이 더 강력해졌습니다. PDB의 변경 사항으로 인해 VS 디버거에서 지연 시간이 감소하고 힙 메모리 소비가 30% 감소했습니다.
  • C++ Core Check는 이제 네이티브 코드 분석을 위한 기본 도구 집합의 일부입니다. 코드 분석이 프로젝트를 통해 실행될 때마다 C++ Core Check에서 기본 권장 규칙 외에도 규칙의 하위 집합이 활성화됩니다.
  • Linux 프로젝트에 대한 병렬 컴파일 지원을 추가하여 빌드 시간이 크게 향상되었습니다. 이는 속성 페이지 > C/C++ > 최대 병렬 컴파일 작업 수를 통해 사용하도록 설정할 수 있습니다.
  • "공용 프로젝트 포함 디렉터리" Linux 프로젝트 속성을 추가하여 Linux 솔루션의 프로젝트 간 참조에서의 포함 사용이 향상되었습니다.
  • C++ 개발자를 위한 ClangFormat 지원이 IDE에 추가되었습니다. EditorConfig와 마찬가지로 ClangFormat을 사용하여 개발 팀 전체에 적용할 수 있는 방식으로 코드의 스타일과 서식이 입력하는 대로 자동으로 지정됩니다.

C# 컴파일러

버그 수정 외에도, 이 릴리스에서 제공하는 C# 7.3 기능은 다음과 같습니다.

Python

  • 프로젝트를 마우스 오른쪽 단추로 클릭하고 Python > MyPy를 차례로 선택하여 프로젝트에서 MyPy를 실행할 수 있습니다. MyPy는 코드를 형식 힌트와 대조하여 확인하고, 검색된 모든 형식의 오류가 오류 목록에 표시됩니다.
  • Conda 환경을 만들고 사용할 수 있으며, pip 또는 Conda를 사용하여 Conda 환경에 대한 패키지를 관리할 수 있습니다.
  • Anaconda 버전 5.1.0은 이제 Visual Studio 설치 관리자에서 사용할 수 있으며, 데이터 과학 작업이 선택되면 기본적으로 설치됩니다.
  • 인기 있는 오픈 소스 pydevd 디버거를 기반으로 하는 Python 디버거의 ptvsd 4.0 버전에 옵트인이 추가되었습니다. 옵트인은 도구 > 옵션 > Python > 실험적에서 실험용 디버거 사용을 선택하여 활성화할 수 있으며, 애플리케이션에 더 빠른 디버깅 성능을 제공합니다.
  • 디버거, Conda, MyPy 및 형식 힌트를 사용하는 방법에 대한 자세한 내용은 Visual Studio 15.7의 Python 블로그 게시물을 확인하세요.

Visual Studio Tools for Xamarin

이 릴리스에는 Xamarin.Android 8.3Xamarin.iOS 11.10이 포함되어 있습니다.

자동 Android SDK 관리

Xamarin.Android 프로젝트가 로드되면 Visual Studio에서 프로젝트에 사용된 Android API 수준이 컴퓨터에서 누락되어 있는지 확인하고 백그라운드에서 자동으로 설치합니다. 이 기능을 사용하도록 설정하려면 도구 > 옵션 > Xamarin > Android 설정 > Android SDK 자동 설치로 차례로 이동합니다.

향상된 XAML IntelliSense

Visual Studio 2017 버전 15.7을 사용하는 Xamarin.Forms 개발자는 크게 향상된 IntelliSense 환경을 확인할 수 있습니다(그림 5). Xamarin.Forms XAML 편집 환경은 이제 WPF 및 UWP를 구동하는 동일한 IntelliSense 엔진으로 작동됩니다. 이는 개발자에게 향상된 일치, 전구 제안, 코드 탐색, linting, 리소스 완료 및 태그 확장 완료를 포함하여 향상된 많은 기능을 제공합니다.

Xamarin.Forms XAML editing experience
(그림 5) Xamarin.Forms XAML 편집 환경
조건부 XAML에 대한 향상된 도구 기능

XAML 편집기는 조건부 XAML을 작성하기 위한 IntelliSense를 제공합니다. 응용 프로그램의 대상 최소 버전에 없는 형식을 사용하는 경우 XAML 편집기에서 경고할 뿐만 아니라 해결할 수 있는 몇 가지 옵션도 제공합니다.

자동 iOS 프로비전

개발을 위한 iOS 디바이스 프로비저닝을 더 쉽게 만들었습니다(그림 6). Visual Studio 2017 버전 15.7에는 한 번의 단추 클릭만으로 개발 인증서를 요청하고, 서명 키를 생성하고, 개발자 센터에 디바이스를 추가하고, 프로비전 프로필을 만들 수 있는 간소화된 환경이 있습니다. iOS 디바이스 프로비저닝의 과중한 작업은 모두 30초 이내에 처리됩니다.

iOS & Android Project Templates Image
(그림 6) iOS 자동 프로비전 기능으로 더 쉬워진 자동 iOS 프로비전 기능
Android SDK Management

모바일 개발을 위해 설치할 Android SDK를 파악하는 데 시간이 걸릴 수 있습니다. Visual Studio 2017 버전 15.7에는 Android SDK 설치 관리에 대한 중간 과정을 수행하는 새로운 Android SDK 관리자가 추가되었습니다. 빌드하기 위해 SDK를 설치하지 않은 프로젝트가 열린 후에 필수 SDK를 다운로드하는 데 도움이 되는 알림이 표시됩니다. 다운로드 및 설치를 클릭하고 관련 사용권 규약에 동의하면 올바른 SDK가 백그라운드에서 자동으로 설치됩니다.

새 iOS 및 Android 프로젝트 템플릿

새롭거나 숙련된 Xamarin 개발자 모두에게 프로젝트 템플릿은 앱 빌드 과정에서 중요한 부분입니다. 이러한 템플릿은 성공을 위해 처음부터 쉽게 찾고 설정할 수 있어야 합니다(그림 7). 이 릴리스에서는 플라이아웃 또는 아래쪽 탭과 같은 현대적인 탐색 패턴을 더 효율적으로 검색하고 지원할 수 있도록 iOS 및 Android 네이티브 프로젝트 템플릿이 완전히 다시 작성되었습니다.

iOS & Android Project Templates
(그림 7) 쉽게 찾고 설정할 수 있는 iOS 및 Android 프로젝트 템플릿
향상된 설치 기능

Visual Studio 설치 관리자에는 Android API 27 및 Android SDK Tools 26을 포함한 업데이트된 Android SDK 구성이 함께 제공됩니다. 여기에는 빠른 부팅 지원이 포함되어 있어 Android 에뮬레이터를 5초 이내에 부팅할 수 있습니다.

또한 에뮬레이터를 쉽게 생성, 편집 및 삭제할 수 있도록 모바일 개발의 일부로 .NET 워크로드가 있는 Android Device Manager가 포함되었습니다.

.NET 생산성 향상

  • 빠른 작업 및 리팩터링(Ctrl+.)을 사용하여 다음을 수행합니다.
    • forforeach로 변환하고, 그 반대의 경우도 마찬가지입니다.
    • readonly 전용 필드를 만듭니다.
  • LINQ 쿼리 절 및 분해에 정의로 이동(F12)이 지원됩니다.
  • Ctrl+.를 사용하여 코드 스타일 기본 설정에 관계없이 var과 명시적 유형 간에 전환합니다.
  • 빠른 정보에서 람다 함수와 로컬 함수에 대한 캡처를 보여 주므로 범위 내에 있는 변수를 확인할 수 있습니다.
  • 서명 리팩터링 변경(서명 시 Ctrl+.)은 로컬 함수에서 작동합니다.
  • .NET Core 프로젝트 파일을 내부에서 편집할 수 있으므로 포함 폴더 열기, 탭 복원 및 기타 편집기 기능이 완벽하게 지원됩니다. 연결된 파일 추가와 같은 IDE 변경 내용은 편집기에서 저장되지 않은 변경 내용과 병합됩니다.

테스팅

  • Live Unit Testing은 포함된 pdb와 지정/결정적 pdb에서 작동합니다.
  • 참조 어셈블리를 사용하는 프로젝트에 대한 Live Unit Testing 지원이 추가되었습니다.
  • 테스트 탐색기에는 테스트 실행 중에 더 많은 응답 아이콘이 표시됩니다. 테스트 실행이 진행 중일 때 현재 실행 중인 테스트 옆에 진행률 링이 표시되고, 보류 중인 테스트에 대해 시계 아이콘이 표시됩니다.

웹 도구

  • ASP.NET 웹 애플리케이션 프로젝트 템플릿을 최신 버전의 종속 패키지로 새로 고쳤습니다.
  • 컨테이너화되지 않은 애플리케이션을 Linux의 Azure App Service에 게시할 수 있습니다.
  • 클라우드 탐색기의 게시 요약 페이지에서 Azure App Service를 연결하여 엽니다.
  • .NET Core 프레임워크에 종속적이고 자체 포함된 애플리케이션을 게시할 수 있도록 지원됩니다.
  • F# 애플리케이션에 대한 지원을 App Service 및 폴더에 게시합니다.
  • IIS Express 프로세스에서 ASP.NET Core 애플리케이션을 직접 호스팅하기 위한 지원이 추가되었습니다.
  • 새 Azure App Service에 게시할 때 스토리지 계정을 만들고 연결 문자열 이름을 제공하여 App Service 설정에 저장할 수 있습니다.
  • 디버그하는 동안의 Kestrel HTTP 지원이 향상되었습니다.
  • ASP.NET Core 애플리케이션에서 프로젝트 속성 아래의 "앱 URL" 필드에 세미콜론으로 구분된 여러 개의 값을 지원합니다. 이 필드에 여러 개의 URL이 있으면 첫 번째 URL이 브라우저를 시작하는 데 사용됩니다.
  • "Identity"라는 새 스캐폴더가 ASP.NET Core 2.1 애플리케이션에 ID 관리 UI를 추가하는 명령줄(GUI 지원 제공 예정)을 통해 사용할 수 있습니다.
  • ASP.NET 및 ASP.NET Core 프로젝트에서 "Key Vault" 연결된 서비스를 구성하여 Azure Key Vault를 만들고 IDE 내의 웹 애플리케이션과 연결할 수 있습니다.
  • ASP.NET 또는 ASP.NET Core 애플리케이션이 Azure Key Vault를 사용하는 경우 도구 > 옵션 > Azure 서비스 인증 아래에서 선택한 계정이 지정된 개발자의 머신에서 앱이 런타임에 해당 Key Vault에 액세스할 수 없으면 오류 목록에 오류가 표시됩니다. 이렇게 하면 권한 또는 계정 문제를 검색하고 수정하는 시간을 줄이고 런타임에 애플리케이션 오류가 발생하지 않도록 방지합니다.
  • 웹 응용 프로그램에서 선택한 ASAL 사용자 계정에 액세스 권한이 없는 KeyVault를 사용하면 오류 목록에 경고가 표시됩니다.

Visual Studio 2017 Build Tools

Azure, UWP 및 기타 워크로드 지원

Visual Studio 2017 Build Tools는 대부분의 Visual Studio 프로젝트에 대한 명령줄 빌드를 지원합니다. 지원되는 프로젝트에는 ASP.NET, Azure, C++ 데스크톱, ClickOnce, 컨테이너, .NET Core, .NET 데스크톱, Node.js, Office 및 SharePoint, Python, TypeScript, 단위 테스트, UWP, WCF 및 Xamarin 등이 포함됩니다. 이후 릴리스에서 SQL에 대한 지원이 추가될 예정입니다. Visual Studio Build Tools는 이제 컨테이너에 설치도 지원합니다. Visual Studio 다운로드에서 Visual Studio Build Tools를 다운로드할 수 있습니다. 컨테이너 이미지를 조정할 수 있는 구성 요소 ID 및 작업 목록은 Visual Studio Build Tools 2017 구성 요소 디렉터리에 있습니다.

참고 항목

Build Tools에는 Visual Studio 2017에 대한 라이선스가 필요합니다.

Visual Studio 2017 빌드 도구의 UWP 지원

Visual Studio Build Tools를 사용하여 모든 Visual Studio를 설치하지 않고도 빌드 서버를 만들 수 있습니다. 고객의 요청에 부응하여 추가 프로젝트 형식을 지원하도록 Visual Studio Build Tools를 개선했습니다. 이런한 프로젝트 유형에는 ASP.NET, Azure, C++ 데스크톱, ClickOnce, 컨테이너, .NET Core, .NET 데스크톱, Node.js, Office 및 SharePoint, Python, TypeScript, 단위 테스트, UWP, WCF 및 Xamarin 등 지원되는 프로젝트 목록과 함께 UWP 도구가 포함됩니다. 이후 릴리스에서 SQL에 대한 지원이 추가될 예정입니다.

유니버설 Windows 플랫폼 개발자를 위한 도구

  • 시각적 상태 관리 및 애니메이션 도구는 XAML 디자이너의 최신 업데이트가 포함된 Blend에서 사용할 수 있습니다. 모든 UWP 개발자가 이러한 도구에 액세스할 수 있습니다. 또한 XAML 편집 및 계속에서는 시각적 상태 및 애니메이션 편집을 지원합니다.
  • Windows Machine Learning 자동 코드 생성 지원을 통해 ONNX 모델 파일을 기존 항목으로 프로젝트에 추가하여 WinML 래퍼 클래스를 생성할 수 있습니다.
  • Windows 10 2018년 4월 업데이트 SDK(빌드 17134)는 Visual Studio의 유니버설 Windows 플랫폼 개발 워크로드에 대한 기본 SDK입니다.
  • C# 및 새 선택적 코드 패키지 프로젝트 템플릿을 사용하여 선택적 패키지에서 코드 실행을 통해 관련 집합을 만들 수 있습니다.
  • 새 '패키지 레이아웃' 항목 템플릿을 사용하면 플랫 패키지 번들을 쉽게 생성할 수 있습니다.

APPX 패키지에서 AppInstaller 지원

유니버설 Windows 플랫폼을 사용하면 "사이드로딩"이라는 메커니즘을 사용하여 Microsoft Store 없이 애플리케이션을 배포할 수 있습니다. 이 릴리스에서는 appinstaller 파일을 생성하여 APPX 기반 배포에서 자동 업데이트를 가져올 수 있습니다. 기본 기술에 대해 자세히 알아보세요.

NuGet

  • 이 릴리스에서는 packages.config에 따라 기존 프로젝트를 PackageReference로 마이그레이션하기 위한 즉시 지원을 제공합니다.

  • NuGet 패키지 서명 지원이 추가되었습니다. 서명된 패키지 설치하거나 복원하면 패키지 콘텐츠를 추출하기 전에 디지털 서명의 유효성을 검사합니다. 서명 유효성 검사가 실패하면(예: 콘텐츠가 변조되었거나 유효하지 않은 인증서 등) 오류 목록에 표시된 빌드 오류로 인해 작업이 차단됩니다.

TypeScript 및 JavaScript

TypeScript 2.8 RC가 Visual Studio 2017 버전 15.7에 포함되었습니다.
이 릴리스에서 향상된 기능은 다음과 같습니다.

  • tsconfig.json과 비슷한 편집기 옵션을 제어하는 데 도움이 되는 파일인 jsconfig.json에 대한지원
  • 열지 않은 파일에 대한 형식 검사를 해제하여 리소스 사용을 줄이는 옵션
    • 도구 옵션 > TextEditor > JavaScript/TypeScript > 프로젝트의 편집기 옵션 > 에서 열린 파일에 대한 유일한 보고서 진단.
  • TypeScript 및 JavaScript 사용자 모두를 위한 새로운 편집 기능 :
    • 파일 내의 모든 빠른 수정 적용
    • 가져오기 구성
    • JSX의 클래스와 중괄호에서 this. 완성
  • TypeScript 2.8 기능:
    • 조건부 형식(A extends B ? C : D)
    • lib.d.ts 조건부 형식 도우미(예: NonNullable, ReturnType, ExtractExclude)
    • 매핑된 형식의 한정자에 대한 세분화된 제어
    • // @jsx pragma를 사용하여 파일 내의 JSX 팩터리에 대한 제어

TypeScript 2.8에 대한 자세한 내용은 TypeScript 2.8 RC 블로그에서 확인할 수 있습니다.

  • TypeScript 2.7 기능:
    • 엄격한 속성 초기화
    • 숫자 구분 기호
    • 더 효율적인 형식 가드

TypeScript 2.7에 대한 자세한 내용은 TypeScript 2.7 블로그에서 확인할 수 있습니다.

또한 코드 조각의 조기 트리거링, 취소할 수 없는 리팩터링, 사용 해제하기 어려운 서식 및 잘못된 TypeScript 버전 선택을 포함하여 고객이 제기한 주요 문제 중 일부가 해결되었습니다.

참고 항목

이러한 향상된 기능은 TypeScript 2.8에서 제공됩니다. 최상의 환경을 위해 기존 프로젝트를 최신 TypeScript 버전으로 업데이트하세요.

Microsoft Edge를 사용하여 JavaScript 디버깅

Windows 참가자 빌드의 Visual Studio ASP.NET 및 .NET Core 개발자는 Microsoft Edge 브라우저를 사용하여 중단점을 설정하고 JavaScript 파일을 디버그할 수 있습니다. Visual Studio는 Microsoft Edge 브라우저를 대상으로 할 때 Microsoft Edge 팀에서 개발한 새 Edge DevTools 프로토콜을 사용합니다. 개발자는 Microsoft Edge와 Google Chrome 브라우저 모두에서 Visual Studio 내에서 JavaScript 문제를 디버그하고 수정할 수 있습니다. 고객이 자주 요청하는 이 기능을 사용할 수 있게 되어 기쁘게 생각합니다. Visual Studio를 향상시키는 데 도움이 되도록 기능에 대한 의견을 보내주시기 바랍니다.

디버깅 및 진단

이 릴리스에서는 소스 링크에 대한 VSTS 및 GitHub 인증 지원이 추가되었습니다. 인증은 IDE를 통해 사용할 수 있는 경우 소스 링크 요청에 자동으로 추가됩니다. 사용자가 아직 인증되지 않은 경우 인증을 사용하도록 설정하기 위해 로그인 UI가 표시됩니다.

IntelliTrace의 뒤로 이동 디버깅 기능이 .NET Core 프로젝트를 디버깅하는 데 지원됩니다.

  • 이 기능을 사용하도록 설정하려면 도구 > 옵션 > IntelliTrace 설정으로 이동하고, IntelliTrace 이벤트 및 스냅샷 옵션을 선택합니다.
  • IntelliTrace의 뒤로 이동 디버깅 기능은 예외에서 스냅샷 만들기를 지원합니다. 이 기능을 사용하도록 설정하려면 도구 > 옵션 IntelliTrace 설정으로 이동하고 IntelliTrace 이벤트 및 스냅샷 옵션을 선택합니다(그림 8).>
Snapshot on exception
(그림 8) 예외에 대한 스냅샷

Microsoft Edge에서 ASP.NET 프로젝트에 대한 스크립트 디버거 시작 및 연결

Google Chrome을 브라우저로 선택하여 사용할 때 Visual Studio에서 직접 JavaScript와 TypeScript를 모두 디버그할 수 있습니다. Visual Studio에서 Chrome을 브라우저로 선택하고 F5 키를 눌러 디버그하면 됩니다. 자세한 내용은 Google Chrome에서 ASP.NET 프로젝트의 클라이언트 쪽 디버깅을 참조하세요.

팀 탐색기

팀 탐색기의 Git 설정, 전역 설정에 OpenSSL과 보안 채널 중에서 선택할 수 있는 옵션이 추가되었습니다. OpenSSL이 기본값입니다.

6.2 Service Fabric 릴리스용 Service Fabric 도구

Service Fabric 6.2 릴리스에 대한 Service Fabric 도구는 6.2 런타임과 3.1 SDK에 대한 호환성을 지원합니다. 몇 가지 버그 수정과 함께 새로운 기능은 사용하면 기존 ASP.NET 또는 콘솔 프로젝트에 컨테이너 지원을 추가할 수 있습니다. .NET Framework 및 .NET Core 2.0 모두 “새 오케스트레이션 지원” 바로 가기 메뉴 및 대화 상자를 통해 지원됩니다. 이러한 프로젝트가 Service Fabric 오케스트레이션 지원에 추가되면 원격으로 배포하고 로컬 Service Fabric 클러스터에서 디버깅할 수 있습니다.

Entity Framework 도구 개선 사항

향상된 F# 및 F# 도구 기능

F# 및 해당 도구를 대폭 개선했습니다. 이 릴리스에서는 .NET SDK 스타일 프로젝트를 통한 기존 환경의 성능과 정리에 중점을 두었습니다. 언제나처럼, 훌륭한 F# 커뮤니티가 상당한 도움이 되었습니다.

향상된 F# 컴파일러 및 코어 라이브러리 기능
  • .NET SDK에서 F# 컴파일러를 사용하여 속성에서 F# AssemblyInfo를 생성할 수 있습니다.
  • --debug:full이 Windows에서 F# .NET Core 컴파일러에 지원됩니다.
  • MakeTuple이 구조체 튜플에 지원됩니다.
  • 튜플에 확장 메서드를 사용할 때 발생하는 불필요한 경고가 해결되었습니다.
  • 부모 프로세스가 취소될 때 MailboxProcessor.PostAndAsyncReply에서 취소를 제대로 처리합니다.
  • NonStructuralComparison을 사용하면 float32 형식에 대한 같음이 올바르게 적용됩니다.
  • Mathias Dittrich에 의해 메서드 오버로드를 검색할 때 경고가 전달됩니다.
  • John Wostenberg에 의해 일치하지 않는 열거형의 예제를 내보내기 위해 열거형에 대한 패턴이 일치할 때 발생하는 경고가 향상되었습니다.
F# 도구 개선 사항
  • Avi Avni와 Microsoft에 의해 F# 컴파일러 서비스의 메모리 사용량이 크게 줄었습니다.
  • 사용되지 않은 개방 분석기가 설정되는 경우 해당 성능이 크게 향상되었습니다.
  • F# 분석기 및 코드 수정이 설정되는 경우 응답성이 향상되어 오류 진단이 항상 나머지 작업보다 우선적으로 수행됩니다.
  • F#용 ASP.NET Core 템플릿을 추가했습니다.
  • .NET SDK 프로젝트에 대한 폴더에 붙여넣은 파일의 초기 순서가 파일을 붙여넣은 범위의 맨 위에 올바르게 지정됩니다.
  • Alt+Enter를 누르면 프로젝트 파일이 없는 F# 스크립트에서 코드를 F# Interactive에 올바르게 보냅니다.
  • F# 목록에 대한 디버거 보기가 50개 항목에서 5,000개 항목으로 확장되었습니다.
  • 클래식 F# 프로젝트(.NET Framework에만 해당)는 디자인 타임 빌드를 수행하므로 솔루션 로드 시간을 줄입니다.
  • 설정 > 텍스트 편집기 > F# > 고급 아래에서 구조화 지침 및 개요 보기를 설정/해제할 수 있습니다.
  • 어셈블리 수준 특성이 F# 컴파일러 서비스에서 반환됩니다.
  • Entity.DeclaringEntity를 F# 컴파일러 서비스에 추가했습니다.
  • Steffen Forkmannncave에 의해 최적화는 F# 컴파일러 서비스 API를 통해 사용할 수 있습니다.
  • amieres에 의해 GetDeclarationLocation은 올바른 데이터가 있는 경우 결과를 제공할 파일이 더 이상 필요하지 않습니다.
  • Eugene Auduchinok에 의해 이제 IsNameGenerated는 F# 기호 API에서 사용할 수 있습니다.
향상된 F# 인프라 기능
  • autoconf는 더 이상 Mono 빌드에 필요하지 않습니다.
  • 이제는 모든 Visual Studio 통합 프로젝트에서 .NET SDK를 사용합니다.
  • 도구 빌드에 대한 커밋 해시는 도움말 > Microsoft Visual Studio 정보에서 사용할 수 있습니다.

이 릴리스에 포함된 항목에 대한 커밋 로그 전체를 보려면 15.7에 대한 릴리스 태그를 확인하세요.


---

Release Notes Icon Visual Studio 2017 버전 15.7 보안 권고 알림

Visual Studio 2017 버전 15.7.6 보안 권고 알림-- 릴리스된 날짜: 2018년 8월 2일

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

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

Visual Studio 2017 버전 15.7.5 보안 권고 알림-- 릴리스된 날짜: 2018년 7월 10일

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.7.4 보안 권고 알림-- 릴리스된 날짜: 2018년 6월 18일

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

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

Visual Studio 2017 버전 15.7.1 보안 권고 알림-- 릴리스된 날짜: 2018년 5월 8일

CVE-2018-0765 .NET Core 서비스 거부 취약성에 대한 Microsoft 보안 권고

Microsoft는 .NET Core 및 .NET 네이티브 버전 2.0의 취약점에 대한 정보를 제공하기 위해 이 보안 권고를 릴리스합니다. 이 권고는 또한 개발자가 이 취약점을 제거하기 위해 자신의 애플리케이션을 업데이트할 수 있는 지침을 제공합니다. Microsoft는 .NET Framework 및 .NET Core가 부적절하게 XML 문서를 처리하는 경우 발생하는 서비스 거부 취약점을 알고 있습니다. 이 취약점을 악용하는 공격자는 .NET Framework, .NET Core 또는 .NET 네이티브 애플리케이션에 대한 서비스 거부로 이어질 수 있습니다. 업데이트는 .NET Framework, .NET Core 및 .NET 네이티브 애플리케이션에서 XML 문서를 처리하는 방법을 수정하여 취약점을 해결합니다. 사용자 애플리케이션이 ASP.NET Core 애플리케이션인 경우 개발자에게는 ASP.NET Core 2.0.8로 업데이트가 권고됩니다.


Release Notes IconVisual Studio 2017 버전 15.7.1

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

15.7.1에서 해결된 주요 문제

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

  • 이 릴리스에는 솔루션 로링 동안 메모리 사용량 및 GC 압력을 절감하는 수정 프로그램이 포함됩니다.

Release Notes IconVisual Studio 2017 버전 15.7.2

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

15.7.2에서 해결된 주요 문제

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


Release Notes IconVisual Studio 2017 버전 15.7.3

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

15.7.3에서 해결된 주요 문제

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


Release Notes IconVisual Studio 2017 버전 15.7.4

릴리스 날짜: 2018년 6월 18일

15.7.4에서 해결된 주요 문제

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


Release Notes IconVisual Studio 2017 버전 15.7.5

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

15.7.5에서 해결된 주요 문제

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


Release Notes IconVisual Studio 2017 버전 15.7.6

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

15.7.6의 업데이트 요약

이 릴리스에는 다음과 같은 향상된 기능 및 고급 기능이 포함됩니다.

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

15.7.6에서 해결된 주요 문제

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


알려진 문제

언제나 여러분의 의견을 기다리고 있습니다. 최신 문제를 찾고, 새 문제를 기록하고, 기존 문제를 추천하려면 개발자 커뮤니티 사이트를 방문하세요. 알려진 기존 문제 및 Visual Studio 2017 버전 15.7에서 사용 가능한 해결 방법을 모두 참조하세요.

Visual Studio 2017 Known Issues


피드백 및 제안

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


Blogs

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

Developer Tools Blogs


Visual Studio 2017 릴리스 정보 기록

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


맨 위로 이동