/langversion (C# Compiler Options)


Updated: July 20, 2015

For the latest documentation on Visual Studio 2017 RC, see Visual Studio 2017 RC Documentation.

Causes the compiler to accept only syntax that is included in the chosen C# language specification.


The following values are valid:

defaultThe compiler accepts all valid language syntax.
ISO-1The compiler accepts only syntax that is included in the ISO/IEC 23270:2003 C# language specification.
ISO-2The compiler accepts only syntax that is included in the ISO/IEC 23270:2006 C# language specification. This specification is available on the ISO Web site.
3The compiler accepts only syntax that is included in the version 3.0 C# Language Specification.

Metadata referenced by your C# application is not subject to /langversion compiler option.

Because each version of the C# compiler contains extensions to the language specification, /langversion does not give you the equivalent functionality of an earlier version of the compiler.

Regardless of which /langversion setting you use, you will use the current version of the common language runtime to create your .exe or .dll. One exception is friend assemblies and /moduleassemblyname (C# Compiler Option), which work under /langversion:ISO-1.

To set this compiler option in the Visual Studio development environment

  1. Open the project's Properties page.

  2. Click the Build property page.

  3. Click the Advanced button.

  4. Modify the Language Version property.

For information about how to set this compiler option programmatically, see LanguageVersion.

C# Compiler Options
NIB How to: Modify Project Properties and Configuration Settings
C# Language Specification