Visual Studio 2017 버전 15.0 릴리스 정보

Last Update: 2017-09-01

참고: 이것은 최신 버전의 Visual Studio 2017이 아닙니다. 최신 릴리스를 다운로드하려면 Visual Studio 2017용 현재 릴리스 정보 또는 다운로드 페이지를 방문하세요.

이 문서에서는 Visual Studio 2017 버전 15.0 릴리스에 대한 정보를 찾을 수 있습니다.

사용자 의견

Microsoft는 여러분의 의견을 기다리고 있습니다! 설치 관리자나 Visual Studio IDE 자체에서 문제 보고 옵션을 통해 문제를 보고할 수 있습니다. 오른쪽 위 모서리에 옵션이 있습니다. Developer Community(개발자 커뮤니티) 포털에서 의견을 추적할 수 있습니다. 제안 사항이 있는 경우 UserVoice 사이트를 통해 알려주세요.


릴리스 날짜: 2017년 5월 23일 - Visual Studio 2017 버전 15.0(26228.13) #### 해결된 문제 * 오프라인 설치 시나리오에는 더 이상 인터넷 액세스가 필요하지 않습니다.


릴리스 날짜: 2017년 3월 31일 - Visual Studio 2017 버전 15.0(26228.12)

업데이트 요약

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

릴리스 날짜: 2017년 3월 28일 - Visual Studio 2017 버전 15.0(26228.10)

해결된 문제

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


릴리스 날짜: 2017년 3월 14일 - Visual Studio 2017 버전 15.0(26228.09)

해결된 문제

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


릴리스 날짜: 2017년 3월 7일 - Visual Studio 2017 버전 15.0(26228.04)

업데이트 요약

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

  • 새로운 설치 환경은 더욱 빠르고 다양한 사용자 지정 설치에 적합하도록 최소 공간을 줄였으며, 오프라인 설치를 지원합니다.
  • 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 설치 관리자에서 사용할 수 있습니다.

이 버전의 새로운 기능

설치 환경

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

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

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

(그림 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 확장을 선택할 수 있습니다.
  • VS 외부의 분기를 전환할 때 성능 향상을 지원하기 위해 모든 프로젝트 다시 로드가 솔루션 다시 로드로 대체되었습니다. 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)을 계속 추적하기가 더 쉬워졌습니다.

Version Control - Unpublished commits example

(그림 2) 버전 제어 - 게시되지 않은 커밋 예제

Version Control - No pending changes example

(그림 3) 버전 제어 - 보류 중인 변경 내용 없음 예제

로그인 및 ID 개선

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

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

시작 페이지

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

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

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

Start Page with Get Started and News

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

향상된 코드 탐색

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

  • 전체로 이동(Ctrl+ 또는 Ctrl+ T)을 사용하면 파일, 형식, 메서드 및 코드의 기타 요소를 신속하게 찾아서 이동할 수 있습니다. 큰 코드베이스에서도 모든 종류의 항목을 찾을 수 있습니다. 게다가 찾고 있는 항목의 종류를 알고 있다면 간단하게 필터링할 수 있습니다. 또한 C#, Visual Basic 및 F#에서는 형식 이름을 잘못 입력한 경우에도 여전히 결과를 얻을 수 있도록 "유사" 일치 기능이 추가되었습니다. 줄 이동(Ctrl + G) 환경도 최신화했습니다. 편집 메뉴 위에서 이동 명령군을 찾을 수 있습니다(그림 5)(그림 6).

Go To Results Filtered

(그림 5) 필터링된 결과로 이동

Go To Line

(그림 6) 줄 이동

  • 모든 참조 찾기(Shift + F12)를 전체적으로 점검하여(현재 C#, Visual Basic, F# 및 C++에 대해) 고급 그룹화, 필터링, 정렬, 참조 결과 내에서 검색, 결과 색 지정(C# 및 VB의 경우) 등의 기능을 제공하므로 참조를 명확하게 이해하고 확신을 갖고 필요한 코드 줄로 이동할 수 있습니다. 참조 항목을 마우스로 가리키면 소스 코드(C# 및 VB의 경우)에 대한 참조 컨텍스트와 함께 도구 설명이 표시됩니다. 도구 모음에서 결과 유지 단추를 설정/해제하여 그 다음번에 모든 참조 찾기를 호출하면 새 창이 참조 결과로 채워집니다. 이 단추를 사용하여 기존 창을 현재 결과로 유지할 수도 있습니다(그림 7).

Find All References

(그림 7) 모든 참조 찾기

  • 이제 편집기에 구조 안내선이 그려지기 때문에 작업하는 코드 구조를 쉽게 시각화할 수 있습니다. 마우스로 가리키면 상위 블록을 기준으로 현재 코드 블록의 컨텍스트를 포함하는 도구 설명(그림 8)이 표시됩니다. 현재 구조 안내선은 C#, Visual Basic, F# 및 XAML 파일에 사용할 수 있으며 TextMate 문법을 통해 지원되는 모든 파일에도 사용할 수 있습니다. 이 기능은 도구 > 옵션 대화 상자에서 텍스트 편집기 > 일반 범주에 있는 구조 안내선 표시 확인란을 선택 취소하여 비활성화할 수 있습니다.

Structure Guide Lines

(그림 8) 구조 안내선

EditorConfig를 통한 코딩 규칙 지원

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

폴더 열기

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

The new Open Folder feature in the 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)으로 이동한 다음 프로젝트 및 솔루션에서 일반을 선택하거나 빠른 실행으로 "경량 솔루션 로드"를 검색합니다. 솔루션 속성 창에서 각 솔루션에 대해 이 기능을 켜거나 끌 수 있습니다.

The new Lightweight Solution load feature in the Visual Studio IDE

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

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

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

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

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).

Project Overview

(그림 11) 프로젝트 개요

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

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

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

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

Connected Services

(그림 12) 연결된 서비스

도구 및 기능의 제품 내 구입

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

In-product acquisition via Quick Launch

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

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

In-product acquisition via New Project Dialog

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


Visual C++

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

C++ 코드 분석

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

CppCoreCheck properties page

(그림 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 키를 누르면 오류 메시지에 대한 온라인 검색이 시작됩니다.

Error List

(그림 16) 오류 목록

Error List Filtered

(그림 17) 오류 목록 필터링

  • 멤버 목록 항목을 종류별로 필터링하는 기능이 추가되었습니다(그림 18).

Member List Filtered

(그림 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 Open Folder

(그림 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)

Use object initializer

(그림 20) 개체 이니셜라이저 사용

  • 새 C#7 기능을 활용하여 out 변수 선언을 인라인으로 이동(그림 21)

Move out variable inline

(그림 21) 변수 인라인 밖으로 이동

  • 새 C#7 기능을 활용하여 null 병합 연산자로 null 검사와 throw 식 간소화(그림 22)

Use throw expression with null-coalescing operator

(그림 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.” 사용
  • 식 본문 또는 블록을 사용합니다.
  • 'cast' 및 'null' 검사에 패턴 일치를 사용합니다.
  • 명시적 튜플 이름을 사용합니다.
  • throw 식, 조건부 대리자, 병합 식 및 null 전파를 사용하여 null 검사를 간소화합니다.
  • 중괄호가 필요합니다.

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

Configure code style preferences and enforcement from EditorConfig

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

IntelliSense 개선 사항

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

IntelliSense Completion Filtering

(그림 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 설명서를 참조하세요.

Rich JavaScript IntelliSense for jQuery

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

성능 향상

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


디버깅 및 진단

실행하려면 클릭

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

Run to Click Icon

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

프로세스에 연결 필터

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

Attach to Process Filter

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

프로세스에 다시 연결

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

새 예외 도우미

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

The New Exception Helper dialog

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

예외 설정에 조건 추가

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

Edit Conditions dialog box

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

디버거 접근성 향상

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

IntelliTrace의 .NET Core 이벤트 지원

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

진단 도구 창 업데이트

디버깅 세션을 시작하면 진단 도구 창에 응용 프로그램에 대한 새 요약 뷰(그림 30)가 표시됩니다. 여기서 다음 작업을 할 수 있습니다.

Summary tab in Diagnostics Tools Window

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

성능 프로파일러 업데이트

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

CPU 사용 도구 업데이트

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

  • 향상된 외부 코드 지원 - 이제 CPU 도구에서 사용자 코드에 의해 호출된 경우 라이브러리 및 프레임워크 비용에 대한 더 나은 통찰력을 제공합니다.
  • 함수 뷰(그림 31) - CPU 비용별로 순위가 매겨진 함수를 볼 수 있습니다.

Functions List

(그림 31) 함수 목록

  • 호출자/호출 수신자 뷰(그림 32)에서는 선택한 함수와의 함수 호출 비용을 조사할 수 있습니다.

Caller / Callee View

(그림 32) 호출자/호출 수신자 뷰

  • 소스 뷰에서는 CPU 도구에서 함수를 선택할 때 해당 함수의 소스 코드를 표시합니다.

Chrome 디버깅 지원

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


Live Unit Testing

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). 또한 이 새로운 환경에서는 선택한 테스트 메서드에 대한 기존 연결도 볼 수 있습니다.

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

Test Explorer Associate Automation

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

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

Associate Automation

(그림 35) 자동화 연결

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

Work Item Form Compatibility mode

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


Team Explorer

새로운 Git 기능

IDE를 벗어나지 않고 종단 간 워크플로의 더 많은 작업을 수행할 수 있게 해주는 새로운 Git 기능이 Visual Studio 2017에 추가되었습니다. 쉽게 나가는 커밋에 대한 차이를 보고, 강제 보내기를 수행하여 다시 지정을 완료하거나 수정된 커밋을 푸시하고, 업스트림 분기를 다시 설정하고, VS에서 패치 다시 지정을 계속할 수 있습니다. 또한 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 이전 버전에 연결하는 경우 레거시 작업 항목 폼이 나타납니다.

Work Item Form in Team Explorer

(그림 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)에서 설치된 구성 요소 목록을 찾아 해당 확장의 필수 구성 요소로 지정할 수 있습니다.

Prerequisite

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

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

VSIXInstaller

(그림 39) VSIXInstaller

일괄로 확장 수정

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

Extensions and Updates Dialog

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

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

Batched Modification Installer

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

Ngen 지원

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

NGEN Properties

(그림 42) NGEN 속성

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

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

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

VSIX Properties

(그림 43) VSIX 속성

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

로밍 중인 확장 관리자

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

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

The new Roaming Extension Manager in the 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(명령줄 인터페이스)를 사용하여 수동으로 마이그레이션]할 수 있습니다. (https://go.microsoft.com/fwlink/?linkid=842521)
  • 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 앱에 대한 시각적 자산을 생성하는 기능이 추가되었습니다. 이제 단일 소스 이미지를 사용하여 모든 대상 장치 유형에 맞는 크기로 타일, 로고, 아이콘 및 시작 화면을 만들 수 있습니다.

Manifest Visual Asset Generator

(그림 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 릴리스를 업데이트합니다.

버그 수정

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

  • 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가 VS 프로젝트 템플릿에서 참조되지 않습니다.(4.3.1.1)
  • 구성된 사용자 셸에서 bash 구문을 사용하지 않는 경우 Mac 서버에 연결할 수 없습니다.( 4.3.1.1)
  • [Submit to Test Cloud](Test Cloud에 제출) 옵션이 없습니다(VS2013 및 VS2015에서 해결됨).(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). 또한 빌드 프로세스에서 오류가 발생한 위치를 개발자가 쉽게 식별할 수 있도록 빌드 프로세스의 단계를 설명하는 헤더가 추가되었습니다.

Pretty printing

(그림 47) 오류 색 지정

  • 제품 내 구입 - Cordova 앱을 빠르게 구축할 수 있도록 경량 설치 기능을 도입한 것 외에도, 이제는 개발자가 지속적으로 개발하는 중에 Visual Studio 내에서 추가 빌드 조각을 얻을 수 있도록 경로를 추가했습니다(그림 48). 아직 Android 또는 Windows 구성 요소를 설치하지 않은 경우 Visual Studio 설치를 시작하고 설치 과정을 안내하는 배포 모음을 통해 얻을 수 있습니다.

In-product acquisition

(그림 48) 제품 내 구입

  • 신속하고 안정되게 빌드 -새 Visual Studio 설치 관리자에는 철저히 검증된 타사 구성 요소 도구 체인을 오프라인으로 설치할 수 있는 기능이 통합되어 빠르게 빌드를 구축할 수 있고 빌드 문제를 쉽게 해결하고 수정할 수도 있습니다.
중요

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 메시지 마법사 개선.
  • 다양한 버그 수정 및 최적화 작업.

Code completion session for Unity messages

(그림 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에 있습니다. 앞으로 nuget.exe v4.0.0 +에도 시스템 수준 구성을 저장할 새 위치를 도입할지 검토할 예정입니다. 프로그램 데이터에 있는 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)을 호출할 수 있습니다. 또한 변경 내용을 적용하기 전에 미리 볼 수 있습니다.

Namespace Prefix Rename

(그림 51) 네임스페이스 접두사 이름 바꾸기

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

Lightbulb_remove unnecessary namespace

(그림 52) 불필요한 네임스페이스를 제거하라는 전구 표시

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

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

Structure Visualizer for XAML editor

(그림 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). 오류 목록에 오류가 표시되고, 텍스트 편집기의 물결선은 정확한 위반 위치를 보여 줍니다. 이제 원치 않는 종속성이 늘어날 가능성이 줄었습니다.

Live Architecture Dependency validation

(그림 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가 제공됩니다.


현재 릴리스 정보 참조

The Developer Community Portal Visual Studio 2017 버전 15.3에서 해결된, 고객이 보고한 문제를 참조하세요.

Visual Studio 2017 버전 15.2 릴리스 정보 참조

The Developer Community Portal Visual Studio 2017 버전 15.2에서 해결된, 고객이 보고한 문제를 참조하세요.

Visual Studio 2017 버전 15.1 릴리스 정보 참조

The Developer Community Portal Visual Studio 2017 버전 15.1에서 해결된, 고객이 보고한 문제를 참조하세요.

알려진 문제

모든 기존 알려진 문제 및 Visual Studio 2017에서 사용 가능한 해결 방법을 참조하세요.

위쪽