简体   繁体   中英

Compile errors when using C# 7 features in new VS Studio 2017 ASP.NET MVC 5.2.3 project

I'm using VS 2017 usually for console applications. But now I have to create a new ASP.NET MVC project and found something curious.

Auto generation of getter and setter (context menu "Quick actions and refactoring < Ecapsulate field (and use property)") raise a compiling error. To give an easy example:

public class Person
{
    private string firstname;

    public string Firstname { get => firstname; set => firstname = value; }
}

Error message:

1>------ Build started: Project: DummyASPNETMVC, Configuration: Debug Any CPU ------
1>C:\dev\C#\DummyASPNETMVC\DummyASPNETMVC\Models\Person.cs(12,39,12,41): error CS1043: { or ; expected
1>C:\dev\C#\DummyASPNETMVC\DummyASPNETMVC\Models\Person.cs(12,39,12,41): error CS1513: } expected
1>C:\dev\C#\DummyASPNETMVC\DummyASPNETMVC\Models\Person.cs(14,2,14,2): error CS1513: } expected
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Uncomment the getter and setter will make the things working again.

I'm wondering because this works fine within a console application. Where's the difference here?

Thanks to Panagiotis and Tetsuya . It was the version of c#.

As a reference to this question , you have to do three things:

  1. Uninstall "Microsoft.CodeDom.Providers.DotNetCompilerPlatform" via Nuget Package Manager and reinstall the newest version (currently the 1.0.4)
  2. After this, update Microsoft.Net.Compilers to the newest version (currently 2.2.0)
  3. Change the c# language via project "properties < build < advanced" to version 7.

done.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM