Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 207
yesfabime Avatar asked Jun 06 '17 06:06

yesfabime


1 Answers

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.

like image 138
yesfabime Avatar answered Nov 14 '22 22:11

yesfabime