我在课堂上有这段代码
private string test;
public string Test
{
get => test;
set => test = value;
}
但编译器不会让我编译。它说
CS1043 { or ; expected
CS1513 } expected
我正在使用VS 2017并使用MVC 5项目定位.NET FW 4.6
知道为什么它不起作用吗?
答案 0 :(得分:12)
您必须在项目中将编译器设置为版本7.
项目属性→(选项卡)构建→高级→语言版本= C#7.0
更新@gsharp
还要检查您的(NuGet)对.NET编译器平台Microsoft.Net.Compilers
的引用。
答案 1 :(得分:0)
我遇到了同样的问题。我将我的项目与另一个项目进行了比较,该项目没问题,发现.csproj中的这一行导致了问题。
<Import Project="$(MSBuildToolsPath)\Workflow.Targets" />
&#13;
只需删除它就可以了,并且不知道为什么。
答案 2 :(得分:0)
answer marked above是我的可行解决方案。我无法在当前观点上添加评论,但我想与其他可能会发现类似情况的人分享更多信息。
就我而言,我们正在使用Teamcity构建来运行该解决方案,并且该解决方案正在使用Microsoft Visual Studio 2015运行(MS构建步骤)。幸运的是,我们在构建步骤的Visual Studio部分中还拥有Microsoft Visual Studio 2017。我选择了2017年,它成功运行了。
对于使用TeamCity或Jenkins或类似工具的任何人,第一件事是确保您的工具是否配置了最新的MS build / VS build版本,例如2017或2019(最新)。如果不是,请先获取该版本,然后指向该版本。
还有另一个hack /选项。诸如JEnkins,Teamcity之类的工具也可以一步一步安装nuget,this post可能也可以帮助建立它们。