Làm cách nào để sử dụng C # 7 với Visual Studio 2015?


146

Visual Studio 2017 (15.x) hỗ trợ C # 7, nhưng còn Visual Studio 2015 (14.x) thì sao?

Làm thế nào tôi có thể sử dụng C # 7 với nó?


2
tham khảo đường dẫn này: strathweb.com/2016/03/ móc
Sunil Kumar

8
@SunilKumar: Điều đó cho phép họ trong VS 15 (đó là VS 2017). Nó không đề cập đến VS 2015 (đó là VS 14) ở bất cứ đâu.
Jon Skeet

Câu trả lời:


162

Bạn có thể thay thế trình biên dịch được cung cấp với Visual Studio cho phiên bản hỗ trợ C # 7 bằng cách cài đặt gói Nuget Microsoft.Net.Compilers :

Tham chiếu gói này sẽ khiến dự án được xây dựng bằng phiên bản cụ thể của trình biên dịch C # và Visual Basic có trong gói, trái ngược với bất kỳ phiên bản nào được cài đặt hệ thống.

Không có dấu hiệu nào tôi có thể thấy trên trang gói về việc liệu điều này có được hỗ trợ chính thức trong Visual Studio hay không. Các thử nghiệm không kỹ lưỡng của tôi cho đến nay chỉ ra rằng nó hoạt động nhưng không gây đau đớn - biên dịch mã C # 7, nhưng được gạch chân màu đỏ dòng nguệch ngoạc chỉ ra lỗi cú pháp: Ảnh chụp màn hìnhLưu ý rằng bạn cũng sẽ cần cài đặt gói Nuget System.ValueTuple để sử dụng các tính năng bộ giá trị C # 7 mới.


9
Trong trường hợp đó, tốt hơn là sử dụng VIsual Studio Code hoặc chỉ cần cài đặt Cộng đồng Visual Studio 2017
Panagiotis Kanavos

3
Đây là một điều tốt để biết. Vì vậy, bạn có thể từ từ chuyển một số dự án sang VS2017 khi biết rằng trong trường hợp khẩn cấp, các nhà phát triển khác có thể làm việc với mã của bạn.
ecth

10
Lưu ý trong khi tôi đồng ý về lý thuyết với @PanagiotisKanavos nếu nhân viên của bạn của một công ty vừa hoặc lớn VS2017 Community Edition có thể không hợp lệ để được sử dụng làm giấy phép. Tôi tin rằng Mã VS là FOSS thật.
Chris Marisic

6
Tôi đã cài đặt nuget Microsoft.Net.Compilers mới nhất cho các dự án Xamarin.Forms UWP, Windows 8.1 và Windows Phone 8.1, cũng như nuget System.ValueTuple mới nhất (cộng với phiên bản mới nhất của tất cả các hệ thống khác. . Tất cả mọi thứ dường như hoạt động tốt trong quá trình xây dựng và thời gian chạy. (Tôi chưa thử mọi ngóc ngách của bộ tính năng của trình gỡ lỗi.)
optikos

13
VS2015.3, biên dịch cho .NET 4.7.1: Microsoft.Net.Compilers is only supported on MSBuild v15.0 and above- Tôi cần sử dụng phiên bản này: nuget.org/packages/Microsoft.Net.Compilers/2.4.0 để xây dựng nó, sau đó nó hoạt động tốt. :)
CAD bloke

5

Trong trường hợp của tôi, chỉ cài đặt Microsoft.Net.Compilers không hoạt động. Thay vào đó, tôi đã phải làm như sau:

  1. Cài đặt Microsoft.CodeDom.Providers.DotNetCompilerPl Platform cho dự án ( Công cụ => Trình quản lý gói NuGet => Quản lý gói Nuget cho Giải pháp ... ) và cài đặt Microsoft.CodeDom.Providers.DotNetCompilerPl platform .
  2. Cài đặt Microsoft.Net.Compilers mới nhất cho dự án
  3. Cài đặt bất kỳ gói NuGet nào khác cho tính năng C # mới nhất bạn muốn sử dụng. Trong trường hợp của tôi, mục tiêu của tôi là sử dụng Tuples, vì vậy tôi đã cài đặt System.ValueTuple và hoạt động tốt.

Nhưng vẫn lưu ý rằng các mã C # mà trình biên dịch mặc định của Visual Studio 2015 không biết sẽ vẫn có các hình vuông màu đỏ bên dưới.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.