簡體   English   中英

在新的VS Studio 2017 ASP.NET MVC 5.2.3項目中使用C#7功能時編譯錯誤

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

我通常使用VS 2017用於控制台應用程序。 但現在我必須創建一個新的ASP.NET MVC項目並發現一些好奇的東西。

自動生成getter和setter(上下文菜單“Quick actions and refactoring <Ecapsulate field(and use property)”)會引發編譯錯誤。 舉個簡單的例子:

public class Person
{
    private string firstname;

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

錯誤信息:

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 ==========

取消注釋getter和setter將使事情再次發揮作用。

我想知道因為這在控制台應用程序中工作正常。 這里的區別在哪里?

感謝PanagiotisTetsuya 這是c#的版本。

作為對這個問題的參考,你必須做三件事:

  1. 通過Nuget Package Manager卸載“Microsoft.CodeDom.Providers.DotNetCompilerPlatform”並重新安裝最新版本(目前為1.0.4)
  2. 在此之后,將Microsoft.Net.Compilers更新到最新版本(目前為2.2.0)
  3. 通過項目“properties <build <advanced”將c#語言更改為版本7。

完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM