2017-06-22 16 views
16

Cách đặt phiên bản ngôn ngữ trên C# 7.0 cho tất cả các dự án?Làm thế nào để thay đổi phiên bản ngôn ngữ mặc định của Visual Studio 2017 cho tất cả các dự án?

Project/Properties/Build/Advanced.../Advanced Build Settings screen

đâu thông số mặc định đến từ đâu, tôi muốn thay đổi giá trị mặc định

PS: Tôi không có nghĩa là ngôn ngữ giao diện người dùng

+1

trùng lặp có thể xảy ra của [Thay đổi ngôn ngữ của Visual Studio 2017 RC] (https://stackoverflow.com/questions/40709064/change-language -of-visual-studio-2017-rc) –

+1

Tôi không có nghĩa là ngôn ngữ giao diện người dùng, nhưng ngôn ngữ của Mã số – kogoia

+0

https://blogs.msdn.microsoft.com/benjaminperkins/2017/03/23/how-to-enable-c-7-in-visual-studio-2017/xem, điều này có thể giúp – Kirhgoph

Trả lời

9

Ý nghĩa của giá trị default xuất phát từ biên dịch C# tự . Vì vậy, để thay đổi nó có nghĩa là bạn cần phải thay đổi trình biên dịch.

Nhưng trong trình biên dịch đi kèm với Visual Studio 2017 default thực sự có nghĩa là C# 7.0, vì vậy bạn không cần phải làm gì cả.

Hệ thống dự án Visual Studio chỉ chuyển giá trị phiên bản ngôn ngữ cho MSBuild. Và MSBuild chuyển nó tới trình biên dịch C# như một tùy chọn /langversion. Tùy chọn /langversion cho phép bạn chỉ định phiên bản ngôn ngữ phía trên mà trình biên dịch chấp nhận. Nói cách khác, nó cho phép bạn hạn chế các tính năng sử dụng ngôn ngữ cho một phiên bản nhất định. Nếu bạn sử dụng tính năng từ phiên bản ngôn ngữ cao hơn bạn đã chỉ định, trình biên dịch C# sẽ phát ra lỗi. Đó là tất cả. Nếu bạn chỉ định /langversiondefault, trình biên dịch C# sẽ chấp nhận tất cả cú pháp hợp lệ mà phiên bản ngôn ngữ C# chính lớn nhất bao gồm (xem /langversion (C# Compiler Options) trang trên MSDN). Phiên bản C# chính lớn đi kèm với Visual Studio 2017 là 7.0. Xem Features Added in C# Language Versions trang trên kho C# GitHub.

Nếu bạn cần bật các tính năng của các phiên bản nhỏ nhất (7.1, 7.2, vv) hoặc cấm sử dụng một số tính năng C# mới cho nhiều dự án hoặc giải pháp cùng một lúc bạn có thể sử dụng tệp tùy chỉnh MSBuild 15 Directory.Build.props. trích đoạn có liên quan từ Customize your build bài viết trên MSDN:

... bây giờ bạn có thể thêm một tài sản mới vào mỗi dự án trong một bước bằng cách định nghĩa nó trong một tập tin duy nhất được gọi là Directory.Build.props tại thư mục gốc của repo của bạn. Khi MSBuild chạy, Microsoft.Common.props tìm kiếm cấu trúc thư mục của bạn cho tệp Directory.Build.props (và Microsoft.Common.targets tìm kiếm Directory.Build.targets). Nếu tìm thấy nó, nó sẽ nhập thuộc tính. Directory.Build.props là một tệp do người dùng định nghĩa cung cấp các tùy chỉnh cho các dự án trong một thư mục.

Tiếp theo ví dụ về một tập tin Directory.Build.props chỉ thị biên dịch C# để chấp nhận tất cả các cú pháp hợp lệ trẻ vị thành niên C# phiên bản mới nhất (C# 7.2 trong Visual Studio 2017 phiên bản 15.5.3) trong tất cả các dự án được file csproj của họ không bao gồm <LangVersion> thẻ mà được ưu tiên:

<Project> 
    <PropertyGroup> 
     <LangVersion>latest</LangVersion> 
    </PropertyGroup> 
</Project> 

Để biết thêm thông tin kiểm tra:

+1

VS17 mặc định của tôi cho cả hai phiên bản 4.6.1 và "C# phiên bản chính mới nhất (mặc định)". Nếu tôi muốn sử dụng 'ValueTuple's (không có nuget), tôi cần phải tự thay đổi phiên bản Framework thành 4.7. Nhưng bây giờ nếu tôi muốn sử dụng các tính năng C# 7.2 ('in' modifier hoặc' readonly struct') thì dự án sẽ không biên dịch trừ khi tôi thay đổi phiên bản Language thành "C# version mới nhất (mới nhất)" mà sau đó tôi phải làm cho mỗi cấu hình xây dựng. không có cách nào để mặc định cả mới nhất? Bạn dường như ngụ ý rằng nó đã nên (đối với lang lang ít nhất) nhưng điều đó dường như không phải là trường hợp – pinkfloydx33

+0

Bạn có thể đặt phiên bản Khuôn khổ .NET mặc định cho tất cả các dự án mới bằng cách thay đổi nó trong hộp thoại Dự án mới. Đối với tất cả các dự án hiện tại, bạn phải thay đổi nó bằng tay trong giao diện người dùng hoặc trong tệp .csproj trực tiếp. –

+1

Phiên bản ngôn ngữ 'mặc định' là viết tắt của phiên bản chính cuối cùng, là 7.0 trong trình biên dịch đi kèm với Visual Studio 2017.' mới nhất' là viết tắt của phiên bản nhỏ cuối cùng. Trong trình biên dịch đi kèm với Visual Studio 2017 15.5 nó có nghĩa là 7.2. Xem [Visual Studio 2017 phiên bản 15.5 Ghi chú Phát hành] (https://www.visualstudio.com/en-us/news/releasenotes/vs2017-relnotes). Bạn có thể thay đổi nó cho tất cả cấu hình xây dựng bằng cách chọn 'Tất cả cấu hình' trong trình đơn thả xuống Cấu hình trong thuộc tính dự án hoặc bằng cách đặt' mới nhất 'trong thẻ' 'không có điều kiện trong tệp .csproj. –

Các vấn đề liên quan