前言
之前不知看过哪位前辈的博文有点印象 C# 7 控制台开始支持执行异步方法, 然后闲来无事, 搞着, 搞着没搞出来, 然后就写了这篇博文, 不喜勿喷, 或许对您有帮助.
在 Visual Studio 2017 配置支持 C# 7 + 语法
心想都 VS2017 了肯定是支持 C# 7 + 语法, 然后接着将控制台程序修改为异步, 然后告知于我不行, 尼玛这不是扯淡了么, 如下:
- public class Program
- {public static async Task Main(string[] args)
- {
- using (var context = new EFCoreDbContext())
- {
- var blog = await context.Blogs.FindAsync(3);
- blog.Name = "Jeffcky";
- var result = await context.SaveChangesAsync();
- }
- Console.ReadKey();
- }
- }
然后得知. NET Framework 4.7 可以使用 C# 7 语法, 心想难道是没装. NET Framework 4.7 么, 于是乎到如下地址下载. NET Framework 4.7( https://www.microsoft.com/zh-CN/download/details.aspx?id=55170 ), 结果一安装, 它告诉我安装了或更高版本:
然后一查找资料发现在 Visual Studio 2017 Update 3 就支持 C# 7 语法, 那我现在 Visual Studio 2017 版本都已经超过这版本不知道多少了, 然后一看恍然大悟:
好了, 到了这里我的 VS 2017 已经支持 C# 7 语法了, 看来是缺少什么设置了, 那就看如下方案吧.
(1) 右键项目解决方案点击 [属性] .
(2) 点击左侧 Tab 中的 [生成] , 出来的界面右下角有个 [高级] 点击进去, 如下:
原来是使用语言版本是最新主要版本 [默认] , 那不应该是最高版本, 打开下拉列表, 选择我们想要的版本吧, 就可以愉快的玩耍了, 如下:
或者我们手动编辑以. csproj 的项目文件, 找到如下内容:
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <PlatformTarget>AnyCPU</PlatformTarget>
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <LangVersion>default</LangVersion>
- </PropertyGroup>
将如上 LangVersion 修改我们对应的版本如:<LangVersion>7.2</LangVersion > 保存, 然后生成解决方案就好使了.
总结
理论上 VS 2017 不是应该使用最高 C# 语法版本么, 但事实不是如此, 所以如果您遇到这个问题, 首先请确保您是否安装了. NET Framework 4.7, 如果安装了就按照上述方法进行即可在控制台使用异步方法以及对应 C# 7 + 语法. 可能是我知道的太少, 写出来或许对不知道的童鞋有些许帮助, 早就知道的大佬们就跳过吧, 我们下节再会.
来源: https://www.cnblogs.com/CreateMyself/p/8988706.html