How to set language version on C#7.0 for all projects?
Project/Properties/Build/Advanced.../Advanced Build Settings screen
Where does default parameter come from, I want to change default value
PS: I do not mean the UI language
How to set language version on C#7.0 for all projects?
Project/Properties/Build/Advanced.../Advanced Build Settings screen
Where does default parameter come from, I want to change default value
PS: I do not mean the UI language
The meaning of
default
value comes from the C# compiler itself. So in order to change it's meaning you need to change the compiler.But in compiler that comes with Visual Studio 2017
default
actually means C# 7.0, so you don't need to do anything.Visual Studio Project System merely passes language version value to MSBuild. And MSBuild passes it further to C# compiler as a
/langversion
option./langversion
option lets you specify an upper language version that compiler accepts. In another words it allows you to restrict language features usage to a certain version. If you use feature from language version higher than you specified, C# compiler will emit error. That's all. If you specify/langversion
asdefault
, C# compiler will accept all valid syntax that last major C# language version include (see /langversion (C# Compiler Options) page on MSDN). Last major C# version that comes with Visual Studio 2017 is 7.0. See Features Added in C# Language Versions page on C# GitHub repository.If you need to enable features of latest minor versions (7.1, 7.2 etc.) or forbid usage of some new C# features for multiple projects or solutions at once you can use MSBuild 15 Directory.Build.props customization file. Relevant excerpt from Customize your build article on MSDN:
Following example of a Directory.Build.props file instructs C# compiler to accept all valid syntax of a latest minor C# version (C# 7.2 in Visual Studio 2017 version 15.5.3) in all projects given their .csproj file doesn't include
<LangVersion>
tag which takes precedence:For more information check: