我使用默认的SPA模板启动新的ASP.NET应用程序。我经历并清理了一些与我的风格更加一致的事情,但在尝试将模板标准属性访问器转换为使用C#7属性表达式主体时,我遇到了一个问题。
例如,我试图改变
public ApplicationSignInManager SignInManager
{
get { return _signInManager ?? HttpContext.GetOwinContext().Get<ApplicationSignInManager>(); }
private set { _signInManager = value; }
}
到
public ApplicationSignInManager SignInManager
{
get => _signInManager ?? HttpContext.GetOwinContext().Get<ApplicationSignInManager>();
private set => _signInManager = value;
}
哪个应该在功能上等同。
进行更改后,没有智能感知错误,一切似乎都是正确的。但是,当我尝试构建解决方案时,我只看到“构建失败”的问题。 Visual Studio底部的消息,错误列表中没有错误。
构建输出显示以下内容:
1&gt; ------ Build build:Project:GithubDashboard,Configuration:Debug 任何CPU ------ 1 GT; ... \控制器\ ManageController.cs(34,8,34,10): 错误CS1043:{或;预期 1 GT; ... \控制器\ ManageController.cs(34,8,34,10): 错误CS1513:}预期 1 GT; ... \控制器\ ManageController.cs(34,90,34,90): 错误CS1513:}预期 1 GT; ... \控制器\ ManageController.cs(35,16,35,18): 错误CS1043:{或;预期 1 GT; ... \控制器\ ManageController.cs(35,16,35,18): 错误CS1513:}预期 1 GT; ... \控制器\ ManageController.cs(36,4,36,4): 错误CS1513:}预期
==========构建:0成功,1失败,0最新,0跳过==========
我正在使用Visual Studio 2017(这在RTM和更新15.3.4中都有发生),并且该解决方案有一个针对.NET 4.6的项目。我能够在其他项目中执行此类语法,但出于某种原因,在此项目中失败了。
我还尝试手动强制语言版本从default
升级到C# 7.0
,在构建时我收到以下错误:
无效的选项&#39; 7&#39; for / langversion;必须是ISO-1,ISO-2,Default或1到6范围内的整数。
我错过了让这个工作的东西吗?构建ASP.NET应用程序时是否不支持C#7?