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


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



참고 항목

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


지원 기간

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

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

Visual Studio 블로그

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

Visual Studio 2017 버전 15.5 릴리스


15.5의 주요 새 기능 요약

15.5에서 해결된 주요 문제

다음은 고객이 신고한 문제 중 이 릴리스에서 해결된 문제입니다.

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

The Developer Community Portal


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

Release Notes IconVisual Studio 2017 버전 15.5.0

릴리스된 날짜: 2017년 12월 4일

15.5의 새 기능

Visual Studio IDE

설정 및 설치
  • 설치 관리자는 이제 설치 중에 Windows 복원 지점을 생성합니다.
  • 프로그램 추가 및 제거에는 이제 각 Visual Studio 설치에 대한 항목이 있습니다. Visual Studio 설치 관리자는 이제 각 진입점에서 수정하고 설치를 제거하도록 지원합니다.
  • 오프라인 레이아웃에서 설치하는 작업에서는 더 이상 연결되지 않은 머신에 중간 인증서를 설치하지 않아도 됩니다.
  • 설치 및 업데이트 프로세스에서 안정성 및 취소 가능성 개선 사항을 추가했습니다.
오류 대화 상자 업데이트

Visual Studio Developer Community에서 잠재적 해결 방법을 사용하여 설치 문제를 해결할 수 있는 추가 정보를 표시하도록 오류 대화 상자를 업데이트했습니다. (그림 1)

New installer error dialog box
(그림 1) 새 설치 관리자 오류 대화 상자
성능
  • 대규모 C# 및 Visual Basic 프로젝트의 로드 시간을 줄였습니다.
  • 디버그와 릴리스 간에 구성을 전환하는 시간을 줄였습니다.
  • .NET Core 프로젝트에서 파일 및 폴더 추가, 제거, 이름 바꾸기 시간을 줄였습니다.
  • LSL(경량 솔루션 로드)을 사용하지 않는 솔루션 로드 시간이 감소했기 때문에 LSL이 사용되지 않습니다.
연결된 서비스
  • .NET Core를 대상으로 하는 ASP.NET Core 프로젝트를 지원하도록 Azure Storage 서비스 공급자를 업데이트했습니다.

팀 탐색기 업데이트

팀 탐색기에 대한 최신 업데이트는 사용자 의견의 피드백에 의해 착안했습니다.

이제 Git 하위 모듈 및 워크트리를 사용하고 팀 탐색기에서 fetch.prunepull.rebase를 구성할 수 있습니다. Visual Studio는 이제 Git 하위 모듈 및 워크트리를 일반 리포지토리로 처리합니다. 해당 기능을 로컬 리포지토리 목록에 추가하고 코딩해보세요.

하위 모델의 경우 여러 리포지토리 지원(예: 부모 리포지토리의 파일 및 하위 모듈의 파일을 동시에 보기)이 필요한 작업을 수행할 수 없다는 점을 기억하세요.

또한 모든 페치를 간소화하고 모든 풀링을 재지정하도록 쉽게 기본 Git 동작을 설정할 수 있습니다. 모든 페치를 간소화하면 서버에 더 이상 존재하지 않는 로컬 추적 분기를 제거하고 분기 목록을 정리하여 최신 상태로 유지할 수 있습니다. 모든 풀링을 재지정하면 커밋 기록을 선형으로 정리하고 따라가기 쉽습니다. 전역 및 리포지토리 설정에서 이러한 옵션을 찾을 수 있습니다.

.NET Core 및 ASP.NET Core 보안 권고

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 및 ASP.NET Core 2.0으로 만든 새 프로젝트는 이제 위의 보안 업데이트가 포함된 패키지 버전을 사용합니다. 기존 프로젝트의 경우 사용자는 NuGet 패키지 관리 대화 상자를 사용하여 패키지를 최신 버전으로 업데이트 할 수 있습니다.

MSVC 컴파일러 도구 집합

Visual Studio 2017 15.5에서 Build Tools의 MSVC 컴파일러 도구 집합은 버전 14.12로 업데이트되었습니다. 이 버전은 15.4 버전 14.11와 호환 가능합니다. Visual Studio 2017 15.5로 업그레이드한 후에 코드를 컴파일하는 문제가 발생하는 경우 14.12 도구 집합과 함께 14.11 도구 집합을 강제로 설치할 수 있습니다. Visual Studio 2017 15.4 도구 집합 (14.11)은 C++ 데스크톱 워크로드를 설치한 후에 개별 구성 요소 탭에서 선택할 수 있습니다.

C# 컴파일러의 새로운 기능

C# 컴파일러는 이제 다음을 비롯한 언어 기능의 7.2 집합을 지원합니다.

  • ref struct 한정자를 통해 Kestrel 및 CoreFX 전체에 사용되는 Span<T> 형식을 지원합니다.
  • readonly struct 한정자: 구조체의 모든 멤버를 readonly로 적용합니다. 그러면 코드에 정확성 계층을 추가하고 멤버에 액세스할 때 컴파일러가 값을 복사하는 불필요를 방지할 수 있습니다.
  • in 매개 변수/ref readonly 반환: 수정 불가능한 구조체를 수정 가능한 ref 값과 동일한 효율성으로 안전하게 전달하고 반환할 수 있습니다.
  • private protected 액세스 한정자: 액세스를 protectedinternal의 교집합으로 제한합니다.
  • 뒤에 오지 않는 명명된 인수: 명명된 인수는 이제 다음 인수가 모두 이름별로 전달될 필요 없이 인수 목록의 중간에 사용될 수 있습니다.

Visual Studio Tools for Xamarin

이 릴리스에는 iOS 및 Android용 Xamarin에 대한 업데이트된 지원이 포함됩니다.

Live Run 현재 보기

새로운 Live Run 현재 보기 기능(그림 2)으로 XAML 기반 사용자 인터페이스 빌드가 훨씬 쉬워졌습니다. 사용자 인터페이스를 빌드할 때에는 앱을 저장, 컴파일 또는 다시 배포할 필요 없이 Android Emulator에 입력하는 대로 구현됩니다.

Xamarin Live Player

Xamarin Live Player를 사용하여 개발자는 iOS 및 Android 디바이스에서 직접 자신의 앱을 계속해서 배포, 테스트 및 디버그할 수 있습니다. 앱 스토어 또는 Google Play에서 사용할 수 있는 Xamarin Live Player 앱을 다운로드한 후에 디바이스를 Visual Studio와 페어링하고 Visual Studio 및 모바일 디바이스만을 사용하여 모바일 앱을 빌드하기 시작할 수 있습니다. Xamarin.Forms에 최적화되었으므로 이제 해당 XAML을 수정한 다음 컴파일하거나 전체 배포될 때까지 기다리지 않고 디바이스에서 몇 분만에 변경 내용이 반영되는 것을 확인할 수 있습니다. 이 릴리스에는 다음을 비롯하여 Xamarin Live 기능에 대한 다양한 개선 사항이 포함됩니다.

  • 더 효율적인 디버그 및 라이브 실행: Live Player는 이제 Xamarin Live Player에 디버그할 때 시작 프로젝트를 올바른 플랫폼으로 자동으로 조정합니다(그림 3). 예를 들어 iOS를 선택하고 Live Player 디바이스가 Google 픽셀과 페어링된 경우 IDE는 Android에 대한 시작 프로젝트를 변경하도록 권장합니다.
  • 배포 상태: 이제 상태 표시줄에서 배포 상태와 함께 Xamarin Live Player에 대한 "디버그"의 상태를 추적할 수 있습니다.
  • 콘솔 및 오류 창 통합: 이제 앱 내에서 기록된 출력은 콘솔 창에 표시되고 오류는 Visual Studio의 오류 창에 표시됩니다.
  • 라이브 실행 팝업 메뉴 및 바로 가기 키: XAML UI를 빠르게 시각화할 수 있으므로 팝업 메뉴 및 바로 가기 키를 추가하여 빠르고 쉽게 XAML 페이지를 미리 볼 수 있도록 만들었습니다.
  • 라이브 실행 문서 전환: UI를 빌드하는 경우 공통적으로 다른 XAML 문서 간에 전환이 가능합니다. Visual Studio에서 활성화된 문서를 변경하면 열려 있는 XAML 페이지를 자동으로 라이브 실행되므로, 다른 페이지 간에 쉽게 전환하고 디바이스에 즉시 반영할 수 있습니다.
Xamarin Live Player
(그림 3) Xamarin Live Player 연결, 배포 및 실시간 편집 모드의 애니메이션
템플릿

파일 -> 새 프로젝트 -> 모바일 앱(그림 4) 은 다음을 포함하여 iOS, Android 및 Windows 앱용 플랫폼 간 템플릿 마법사에 대한 업데이트를 통해 더 쉬워졌습니다.

  • .NET Standard 지원 - 이제 .NET Standard 2.0을 코드 공유 전략으로 사용하는 새로운 교차 플랫폼 Xamarin 앱을 만들 수 있습니다.
  • 대상 플랫폼 확인란 - 파일 ->새로 만들기에서 중요한 플랫폼을 선택합니다.
  • PackageReference - 모든 템플릿은 이제 PackageReference을 기본값을 사용합니다. 이 기능은 Xamarin 앱에서 NuGet 패키지를 관리하는 새롭고 쉬운 방법입니다.
  • 펼침 성능 향상 - 템플릿은 이제 이전보다 훨씬 빠르게 펼쳐집니다. 가장 극단적인 경우에는 펼침 시간이 최대 40배까지 향상될 수 있습니다.
File -> New -> Mobile App
(그림 4) 파일 -> 새로 만들기 -> 모바일 앱 설정
원격 iOS 시뮬레이터

원격 iOS 시뮬레이터는 Windows의 Visual Studio에서 시뮬레이터의 iOS 앱을 전체적으로 디버그하고 테스트하는 간단한 방법을 제공합니다. Mac의 iOS 시뮬레이터가 수행하는 모든 작업을 지원하며 멀티 터치 지원을 비롯하여 훨씬 더 많은 작업을 지원합니다. Visual Studio 2017 버전 15.5부터 원격 iOS 시뮬레이터는 무료 Community Edition을 비롯하여 모든 Visual Studio 버전에서 사용할 수 있습니다.

Xamarin Android SDK Manager

새 Xamarin Android SDK Manager를 사용하여 Android SDK를 관리하기가 더 쉬워졌습니다. 이제 도구 -> Android-> Visual Studio의 Android SDK 관리자로 이동하여 새 SDK 관리자를 사용할 수 있습니다.

F# 도구 개선 사항

Visual Studio 2017 15.5 릴리스에서 .NET Core SDK 프로젝트에 대한 F# 도구 지원에 집중했습니다. 이제 다음 항목이 지원됩니다.

  • 파일 > 새 프로젝트에서 새로운 .NET Core 콘솔 앱, .NET Standard 라이브러리, .NET Core 단위 테스트 프로젝트를 만들 수 있습니다.
  • 기존 .NET Core 및 .NET Standard 프로젝트에 대한 지원을 추가했습니다.
  • .NET Framework 버전을 대상으로 지정하는 기존 .NET Core SDK 프로젝트에 대한 지원을 추가했습니다.
  • 프로젝트 간 참조를 지원합니다.
  • Web SDK 프로젝트에 대한 지원을 추가했습니다(예: F# ASP.NET Core 프로젝트 또는 Giraffe 템플릿을 사용하는 프로젝트).
  • 이제 Web SDK 프로젝트에서 게시 도구를 마우스 오른쪽 단추로 클릭할 수 있습니다.
  • Visual Studio Team Services 도구를 사용하여 CI/CD 파이프라인을 자동으로 만들 수 있습니다.

.NET Core SDK 프로젝트에 한정되지 않고 Visual F# 도구에 대한 몇 가지 개선 사항도 있습니다. 다음이 포함됩니다.

  • F#부터 C#까지 정의로 이동, Saul RennisonVasily Kirichenko 작성
  • 파랑(추가 대비) 테마의 전자 채색, Microsoft 및 Vasily Kirichenko 작성
  • 이제 속성 페이지는 다른 모니터에서 정확히 크기를 자동으로 조정합니다.
  • 들여쓰기가 "Smart"로 설정된 경우 새 줄에 대한 자동 들여쓰기, Duc Nghiem Xuan 작성
  • 들여쓰기가 "Smart"로 설정된 경우 닫는 대괄호에 대한 자동 빼어쓰기, Saul Rennison 작성
  • 열거형 필드는 이제 도구 팁, 모든 참조 찾기, 전체로 이동 및 인라인 이름 바꾸기에서 기호로 표시될 수 있습니다. Vasily Kirichenko 작성
  • 줄바꿈으로 구분된 XML 문서 주석은 마우스가 가리킨 현재 XML 문서 주석에 접두사로 지정되지 않습니다(Vasily Kirichenko 작성).
  • ref 키워드에 대한 XML 문서는 수정되었습니다. CHBen 작성
  • 여러 버그 수정 및 성능 개선 사항

GitHub 리포지토리에서 찾은 문제를 보내주세요.

F# 설정의 변경 내용

F#를 설치하는 방법을 변경했습니다.

  • .NET Core 2.0이 필요한 워크로드를 설치하면 기본적으로 F# 언어 지원도 설치됩니다. .NET Core, ASP.NET 및 Azure 워크로드는 이제 다음과 같은 작업을 수행합니다.
  • .NET 데스크톱 개발의 "F# 언어 지원" 확인란, 데이터 스토리지과 처리 및 데이터 과학과 분석 애플리케이션 워크로드는 "F# 데스크톱 지원"이라는 이름으로 바뀌었습니다.

F# 4.1 컴파일러 개선 사항

이 릴리스의 F# 4.1 컴파일러에서 많은 버그가 수정되었습니다.

  • F# 컴파일러의 PDB 개선 사항은 2014년까지 거슬로 올라가는 F# 디버깅에서 알려진 다섯 가지 문제를 수정했습니다.
  • 컴파일러에 의해 잘못 해결된 레코드 필드의 수정, Vasily Kirichenko 작성
  • StartAsTask는 이제 마치기 위해 취소를 대기합니다(Matthias Ditrich 작성).
  • 어셈블리 참조는 이제 형식이 특성에서만 사용될 때 만들어집니다.
  • 사례 이름이 같은 공용 구조체를 구별한 단일 사례 구조체는 더 이상 개체 형식으로 자동으로 변환되지 않습니다.
  • MailboxProcess에서 가능한 끝없는 비동기 루프입니다. 수신을 수정했습니다.

Visual C++ 개선 사항

이제 File>Open>CMake를 통해 IDE에 기존 CMake 프로젝트를 가져오고 구성을 캐시하는 기능이 있습니다.

ARM 온라인 컴파일러 내보내기에 오픈 폴더 지원

Embedded 및 IoT 프로젝트에 Linux C++ 워크로드의 옵션을 선택하고 ARM 마이크로 컨트롤러를 대상으로 하는 프로젝트를 편집하고 컴파일할 수 있습니다. Visual Studio 내에서 로컬로 교차 컴파일될 수 있는 ARM 온라인 컴파일러에서 GCC로 내보낸 열린 프로젝트를 지원합니다. 자세한 내용은 ARM 개발용 Visual C++에 대한 블로그 게시물을 참조하세요.

원격 작업

오픈 폴더는 이제 원격 작업을 지원합니다. SSH(Secure Shell)를 통해 원격 시스템에서 실행되는 작업이 있습니다. 코드를 컴파일하는 작업은 Linux 시스템에서 가능하기 때문에 이러한 작업은 대상 머신에 파일을 복사하도록 구성될 수도 있습니다. 자세히 알아보려면 Visual Studio에서 원격 작업 사용에 대한 블로그 게시물을 참조하세요.

표준 템플릿 라이브러리에 대한 개선 사항

표준 오픈 웹 사이트는 표준 오픈을 만드는 그룹에 대한 많은 페이지를 보유합니다. 이러한 개선 사항을 C++17 표준과 관련된 표준 템플릿 라이브러리에 추가했습니다.

  • not_fn(): P0005R4에서는 라이브러리 기본 항목 TS v2의 not_fn 함수 바인더를 이전 부정어인 not1not2의 대안으로 적용하도록 권장합니다.
  • enable_shared_from_this 단어 바꾸기: P0033R1Re-enabling shared_from_this.
  • 남아 있는 라이브러리 파트 사용 중단: P0174R2. 수 년 간 다양한 C++ 표준 라이브러리의 기능이 추가되어 원래 예상대로 의도된 용도로 제공되지 않는다는 점을 알게 되었습니다. 이 문서에서는 더 낫고 간단하고 명확한 옵션을 사용할 수 있는 기능을 사용하지 않도록 제안했습니다.
  • std::function에서 할당자 지원 제거: P0302R1 클래스 템플릿 std::function에는 할당자 인수를 사용하는 여러 생성자가 있지만 의미 체계는 명확하지 않습니다. 또한 형식이 지워진 컨텍스트에 할당자를 저장하고 나중에 복사 할당 중에 필요한 할당을 위해 해당 할당자를 복구하는 기술적인 문제가 있습니다. 해당 생성자는 제거되어야 합니다.
  • not_fn()에 대한 수정: P0358R1 다른 개선 사항 중에 하나인 std::not_fn에 대해 조정된 표현이 제안되고 래퍼 호출 시 값 범주가 전파되도록 지원합니다.
  • shared_ptr<T[]>, shared_ptr<T[N]>: P0414R2 라이브러리 기본 사항에서 C++17로 shared_ptr 변경 사항 병합.
  • 배열에 대한 shared_ptr 수정: P0497R0 배열에 shared_ptr 지원에 대한 수정입니다.
  • shared_ptr::unique() 사용 안 함: P0521R0 CA 14에 대한 제안된 해결(shared_ptr use_count/unique)
  • codecvt 사용 안 함: P0618R0, <codecvt>는 유니코드 코드 변환을 해결하는 가장 좋은 방법은 아닙니다. 이 라이브러리 구성 요소는 부록 D에 사용을 중지해야 합니다.
  • 동적 예외 사양 제거: P0003R5 C++11에서는 동적 예외 사양이 사용되지 않았습니다. C++17에서 기능을 제거하지만 여전히 사용하지 않는 throw() 사양을 noexcept(true)에 대한 별칭으로 엄격하게 유지합니다.
  • 맵 및 집합 스플라이스: P0083R3. 이 디자인을 사용하면 모든 종류의 작업을 스플라이싱하여 컨테이너 및 많은 다른 유용한 작업 및 디자인에서 요소(맵 키 포함)를 이동할 수 있습니다. 연관 및 순서가 지정되지 않은 연관 컨테이너가 노드 조작을 지원하도록 개선됩니다. 이 표준 라이브러리에 순수하게 추가됩니다.
  • insert_return_type 명확히 설명: P0508R0 고유한 키가 포함된 연관 컨테이너와 고유한 키가 포함된 불규칙 컨테이너에는 중첩 형식 insert_return_type을 반환하는 멤버 함수 삽입이 있습니다. 반환 형식은 이 섹션에 지정된 형식의 특수화입니다.
  • STL에 대한 인라인 변수: P0607R0
Visual C++ 컴파일러 개선 사항

Visual C++ 컴파일러는 구조적 바인딩, constexpr 람다, if constexpr, 인라인 변수, fold 식, hexfloat 리터럴 및 형식 시스템에 noexcept 추가 등 C++17 기능의 약 75%를 지원합니다. 이러한 기능은 /std:c++17 스위치에서 사용할 수 있습니다. /permissive- 규격 모드에는 variadic 템플릿에 대한 2단계 이름 조회에 대한 부분 지원 및 향상된 팩 확장 지원이 포함되어 있습니다. 또한 /permissive- 모드는 C++ 프로젝트의 프로젝트 속성에서 새 언어 드롭다운 메뉴로 추가되었습니다.

Visual C++ 최적화 개선 사항

C++ 코드는 기존 컴파일러 최적화를 개선하고 15.5 릴리스에서 새로운 최적화를 추가했습니다.

링커 개선 사항을 선택합니다.

  • 새롭고 빠른 /OPT:ICF 구현을 경험하세요. 최대 9% 링크 타임이 빨라집니다.
  • 증분 링크를 수정했습니다. 증분 링크는 전체 연결보다 느리면 안됩니다.

기존 최적화에 개선 사항을 선택합니다.

  • 조건 식에 대한 벡터화 도우미 추론을 개선했습니다.
  • loop-if-unswitching 최적화를 개선했습니다.
  • 언롤링을 반복하도록 개선했습니다.
  • 부동 최소/최대 codegen을 개선했습니다.

새로운 최적화를 선택합니다.

  • SSA 최적화에 제거된 중복(및 부분적 중복) 지침을 개선하고 제거했습니다.
  • 조건부 스칼라 저장소의 벡터화를 최적화했습니다.
  • sin(x)cos(x) 호출을 sincos(x)로 조합했습니다.

Visual C++는 AVX-512의 새로운 기능을 128비트 및 256비트 차원의 레지스터에 가져오는 벡터 길이 명령을 포함하는 Intel의 AVX-512를 지원합니다.

C++ 코드 분석에서 새로운 20개의 C++ Core Guidelines가 제공될 예정입니다. 이러한 검사는 스마트 포인터 정확성, 올바른 전역 이니셜라이저 사용, gotobad_cast 같은 구문 사용 플래그 지정이 포함됩니다.

15.3에서 나타나는 일부 경고 번호가 15.5에서는 더 이상 나타나지 않습니다. 이러한 경고는 더 구체적인 검사로 대체되었습니다.

Google 테스트 및 Boost.Test 프레임워크에 대한 기본 제공 지원

Visual Studio에서 Google 테스트 및 Boost.Test 단위 테스트를 작성하고, 발견하고, 실행합니다. 테스트 탐색기는 이제 기본적으로 Google 테스트 및 Boost.Test 프레임워크를 지원합니다. 이전 Visual Studio 설치에서 업그레이드하는 경우 Visual Studio 설치 관리자를 열고, Visual Studio 인스턴스에서 "수정"을 클릭하고, "C++을 사용하여 데스크톱 개발"에서 "Google 테스트에 대한 테스트 어댑터" 및 "Boost.Test에 대한 테스트 어댑터" 상자를 확인합니다. 새 Google 테스트 프로젝트 쉽게 만들기: 파일 > 새로 만들기 > 프로젝트 > Visual C++ > 테스트 > Google 테스트를 선택합니다.

자세한 내용은 Microsoft Docs의 Visual Studio에서 C++에 Google 테스트를 사용하는 방법Visual Studio에서 C++에에 Boost.Test를 사용하는 방법 페이지를 참조하세요.

Visual Studio Web Tools

  • Razor 구문 서식 지정 기능이 향상되었습니다.
  • ASP.NET 애플리케이션을 Azure Virtual Machines로 게시하기 위해 환경을 개선했습니다.

Docker 컨테이너 도구

  • Docker 컨테이너용 Visual Studio 도구는 이제 여러 단계로 이루어진 Dockerfiles를 지원하여 최적화된 컨테이너 이미지 생성을 간소화합니다.
  • Windows 10 버전 1709 또는 Windows Server 버전 1709를 실행하는 머신에서 Visual Studio를 실행하는 경우 컨테이너 이미지는 Windows Server 버전 1709를 기본적으로 활용합니다. Dockerfile을 편집하여 변경할 수 있습니다. 이전 버전의 Windows를 사용하는 컨테이너 이미지는 Hyper-V 격리 모드로 Windows 10 버전 1709 및 Windows Server 버전 1709에서만 실행됩니다. 자세한 내용은 Windows 컨테이너 버전 호환성 페이지를 참조하세요.
  • 기본적으로 Visual Studio는 Docker 지원이 포함된 프로젝트를 열 때 백그라운드에서 필요한 컨테이너 이미지를 자동으로 끌어오고, 빌드하고 실행합니다. Visual Studio에서 백그라운드에서 컨테이너를 자동으로 시작 설정을 통해 비활성화할 수 있습니다.

TypeScript/JavaScript 개선 사항

Angular 2 지원

Angular 2 개발자는 인라인 템플릿 및 .ngml 템플릿 파일에서 오류, 완료 및 코드 탐색을 확인할 수 있습니다. 개요 및 지침은 샘플 리포지토리를 참조하세요.

성능 개선

JavaScript/TypeScript 텍스트 편집기 프로젝트 옵션 페이지에서 편집기에서 열려 있는 파일을 포함하는 프로젝트만 분석 확인란을 추가했습니다. 이 옵션은 대규모 솔루션에서 성능 및 안정성을 향상시킵니다. 이 확인란을 선택할 때 모든 파일에서 TypeScript 오류의 전체 목록을 보도록 솔루션 빌드를 수행해야 합니다.

TypeScript/JavaScript 언어 서비스가 생각보다 더 많은 메모리를 사용하고 다중 프로젝트 솔루션에서 잘못된 버전의 TypeScript가 로드될 수 있는 문제를 해결했습니다.

WCF(Windows Communication Foundation) 도구

WCF Web Service Reference 연결 서비스 공급자(그림 5)는 이제 Visual Studio 15.5의 일부입니다.

WCF Web Service Reference
(그림 5) WCF Web Service Reference

이 도구를 사용하려면 .Net Core 프로젝트에서 종속성 프로젝트 항목을 마우스 오른쪽 단추로 클릭하고, 연결된 서비스 추가 옵션을 선택하고, 코드를 생성하려는 웹 서비스의 주소를 입력합니다. 생성된 WCF 클라이언트 프록시 코드는 프로젝트에 자동으로 추가된 C# 파일에 저장됩니다. 그러면 .NET Core 기반 코드가 웹 서비스와 쉽게 통신할 수 있습니다.

자세한 세부 정보는 WCF 웹 서비스 참조 GitHub의 릴리스 정보를 방문하세요.

디버깅 및 진단

스냅샷 디버거를 사용하여 프로덕션 상태 앱 디버그

이제 Snappoints 및 Logpoints를 사용하여 앱에 미치는 영향을 최소화하여 Azure App Services에서 실행 중인 ASP.NET 및 ASP.NET Core 애플리케이션에 대해 디버그할 수 있습니다.

  • 로컬, 조사식 및 호출 스택을 포함하여 앱의 상태를 캡처하도록 Snappoint(그림 6)를 설정합니다. 중단점과 달리 Snappoint가 적중할 때 앱이 중지되지 않습니다.
Snappoints image
(그림 6) Snappoint
  • Logpoint(그림 7)를 사용하여 코드를 추가하거나 애플리케이션을 다시 배포할 필요 없이 앱에서 새 메시지를 기록합니다.
Logpoints
(그림 7) Logpoint
포함 원본 및 포함 PDB 지원

이제 Visual Studio 디버거는 포함 원본을 통해 PDB 파일에서 직접 관리되는 이진 파일에 대한 원본 파일을 추출하고 사용할 수 있습니다. 포함 원본을 포함 PDB와 결합하여 완전한 독립 실행형 디버그 가능 이진 파일을 만듭니다. /embed 컴파일러 스위치를 사용하는 방법에 대해 자세히 알아봅니다.

이제 Embedded PDB를 사용하여 빌드할 때 관리 코드에 편집 및 계속을 사용하여 디버깅할 수 있습니다.

IntelliTrace를 사용하여 디버깅하는 동안 뒤로 이동

새 IntelliTrace Step-back 디버깅 기능을 사용하면 IntelliTrace가 각 중단점 및 디버거 단계에서 애플리케이션의 스냅샷을 자동으로 만듭니다. 이렇게 하면 이전 중단점 또는 단계로 돌아가서 과거의 애플리케이션 상태를 볼 수 있습니다.

이 기능은 Windows 10 1주년 업데이트 이상에서 사용할 수 있으며 현재 ASP.NET, WinForms, WPF, 관리되는 콘솔 앱, 관리되는 클래스 라이브러리 디버그를 지원합니다(그림 8). 이 기능을 사용하려면 도구>옵션>IntelliTrace 설정으로 이동하고 IntelliTrace 이벤트 및 스냅샷을 선택합니다.

Stepback
(그림 8) IntelliTrace를 사용하여 디버그하는 동안 뒤로 이동

조건부 액세스를 사용하는 Visual Studio에서 Azure 리소스에 액세스

Visual Studio는 이제 조건부 액세스를 활성화한Azure 리소스에 대한 액세스를 지원합니다. 그러려면 자체 계정에 2FA가 필요하지 않더라도 2FA를 사용하여 인증해야 합니다. 이전에 계정이 로그인하는 데 2FA가 필요한 경우 Visual Studio는 2FA에 대한 메시지를 표시하면 사용자는 2FA가 필요한 모든 리소스에 액세스할 수 있었습니다. 하지만 계정에 2FA가 필요하지 않은 경우 Visual Studio는 해당 2FA 리소스에 액세스할 수 없었습니다.

이제 계정에 2FA가 필요하지 않지만 리소스에 필요한 경우 2FA 없이 Visual Studio 내에서 사용자 계정을 인증할 수 있으며, 2FA가 필요한 Azure 리소스에 처음 액세스하려고 할 때 Visual Studio는 다시 인증하라는 메시지를 표시하고 리소스에 액세스하기 위해 2FA가 필요합니다.

Windows 스토어에서 Office용 Office 도구 지원

Office Web 추가 기능 프로젝트 및 VSTO 프로젝트는 이제 Windows 스토어에서 Office 개발을 지원합니다. Windows 스토어에서 Office를 사용하여 웹 추가 기능 프로젝트 및 VSTO 프로젝트를 만들고, 빌드하고, 디버그하고, 게시할 수 있습니다.

  • Windows 10 또는 Windows Server 2016용 가을 작성자 업데이트(버전 1709)에서는 Windows 스토어에서 Office와 함께 Office 도구를 사용해야 합니다.

Visual Studio Tools for Unity

  • 통합 프로젝트는 이제 통합에서 스크립트를 추가하거나 제거할 때 Visual Studio에서 자동으로 리로드됩니다.
  • IL2CPP/.NET 4.6 백 엔드에서 UWP 게임을 사용할 때 .Player 프로젝트 생성을 수정했습니다.
  • Xamarin 및 Mac용 Visual Studio에서 공유된 Mono 디버거를 사용하여 통합 편집기를 디버깅하는 옵션을 도입했습니다.

Live Unit Testing

  • 이제 Live Unit Testing의 빌드는 Visual Studio에서 부족한 메모리 사용률을 개선하고 있습니다.

Windows 패키징

기존 데스크톱 애플리케이션에서 최신 Windows 10 기능을 활용하는 데 도움이 되는 UWP 애플리케이션 및 구성 요소를 포함하기 위해 패키징 프로젝트에 지원을 추가했습니다. UWP 구성 요소를 포함하기 위해 UWP 애플리케이션에 대해 Add Reference를 수행할 수 있습니다(그림 9).

Windows Packaging Project with UWP reference
(그림 9) UWP 참조를 사용한 Windows 패키징 프로젝트

스토어 패키지 마법사를 사용하여 기존 UWP 프로젝트와 같이 데스크톱 브리지 애플리케이션을 스토어에 제출하는데 필요한 파일을 생성할 수 있습니다.


Release Notes IconVisual Studio 2017 버전 15.5.1

릴리스된 날짜: 2017년 12월 7일

15.5.1에서 해결된 주요 문제

다음은 고객이 신고한 문제 중 이 릴리스에서 해결된 문제입니다.


Release Notes IconVisual Studio 2017 버전 15.5.2

릴리스된 날짜: 2017년 12월 14일

15.5.2에서 해결된 주요 문제

다음은 고객이 신고한 문제 중 이 릴리스에서 해결된 문제입니다.


Release Notes IconVisual Studio 2017 버전 15.5.3

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

15.5.3의 업데이트 요약

.NET Core용 Microsoft 보안 권고

  • 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로 업데이트하는 것이 좋습니다.

15.5.3에서 해결된 주요 문제

다음은 고객이 신고한 문제 중 이 릴리스에서 해결된 문제입니다.


Release Notes IconVisual Studio 2017 버전 15.5.4

릴리스된 날짜: 2018년 1월 16일

15.5.4에서 해결된 주요 문제

다음은 고객이 신고한 문제 중 이 릴리스에서 해결된 문제입니다.


Release Notes IconVisual Studio 2017 버전 15.5.5

릴리스된 날짜: 2018년 1월 25일

15.5.5의 업데이트 요약

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

15.5.5에서 해결된 주요 문제

다음은 고객이 신고한 문제 중 이 릴리스에서 해결된 문제입니다.

  • Xamarin 앱에서 오류를 throw합니다 Cannot access a disposed object. Object name: 'MobileAuthenticatedStream'.
  • 클래스에서 Application 파생할 때 Xamarin.Android 앱이 throw됩니다ClassNotFoundException.
  • 업그레이드하면 이전에 설치된 Windows 및 Android SDK가 제거될 수 있습니다.
  • Oracle 웹 사이트에서 다운로드 실패를 방지하기 위해 JDK 8이 최신 버전으로 업그레이드되었습니다.

Release Notes IconVisual Studio 2017 버전 15.5.6

릴리스된 날짜: 2018년 1월 29일

15.5.6의 업데이트 요약


Release Notes IconVisual Studio 2017 버전 15.5.7

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

15.5.7의 업데이트 요약

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

15.5.7에서 해결된 주요 문제

다음은 고객이 신고한 문제 중 이 릴리스에서 해결된 문제입니다.

  • .NET Core 2.1 이상을 대상으로 하는 프로젝트가 Visual Studio 2017 버전 15.5에서 지원되지 않습니다.
  • .NET Core 2.1 이상용 SDK 설치로 인해 ASP.NET Core 2.0 웹 애플리케이션을 만드는 옵션이 사라지는 문제가 해결되었습니다.

알려진 문제

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

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 릴리스 정보 기록 페이지를 참조하세요.


맨 위로 이동