前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【日常排雷】C#8.0来了,但是Visual Studio 2017不认识!

【日常排雷】C#8.0来了,但是Visual Studio 2017不认识!

作者头像
DDGarfield
发布2022-06-23 16:44:39
7350
发布2022-06-23 16:44:39
举报
文章被收录于专栏:加菲的博客加菲的博客
引言

众所周知,无论是C#,还是java,都需要编译,Java——通过 javac命令

代码语言:javascript
复制
javac test.java

那么C#有么!?.net开发者都是对Visual Studio重度依赖(没办法!确实好用,智能提示,调试,宇宙第一的IDE不是光吹出来的),回答前面的问题:“C#也有呀,那就是csc.exe,但是大多数时候我们并不需要接触它,一般情况下,它都直接跟着visual studio 走了”

/out

指定编译后程序的名称,默认是跟文件的名称相同

/target:exe

编译后是一个控制台应用程序 (默认)

/target:library

编译成一个*.dll程序集

/target:winexe

创建GUI的应用程序

代码语言:javascript
复制
csc /targer:exe test.cs

以前还是.NET Framework 时,csc.exe就符在SDK中C:\Windows\Microsoft.NET\Framework\v版本号,感兴趣的可以自己去改path试试。

问题

上次同事,让我帮忙在外网机上编译一个github开源项目,打开Visual Studio 2017, 咔嚓,居然编译失败,【错误】选项“8.0”对 /langversion 无效,然后改成了7.0,然后就报代码中错误,查看了相关代码,才明白,原来是作者用的是C#8.0的语法写,而Visual Studio 2017包含的C#编译器是以C#7.0为目标,说白了,不认识C#8.0

默认值

编译器根据以下规则确定默认值:

目标框架

version

C# 语言版本的默认值

.NET Core

3.x

C# 8.0

.NET Core

2.x

C# 7.3

.NET Standard

2.1

C# 8.0

.NET Standard

2.0

C# 7.3

.NET Standard

1.x

C# 7.3

.NET Framework

全部

C# 7.3

手动设置语言版本
代码语言:javascript
复制
<PropertyGroup>
   <LangVersion>8.0</LangVersion>
</PropertyGroup>

解决问题

同事急等着用,手上只有VS2017,总不能去下载一个VS2019吧,公司网管找上门来揍我怎么办,OA估计都吵起来了,谁在下东西!?。幸好现在有.net core,方便,没错,.net core3.0+是支持C#8.0的语法,那么.net core 3.0+的sdk也能编译C#8.0的项目了,然后下了sdk,120M,还可以接受。vscode打开项目

代码语言:javascript
复制
dotnet build //构建项目,下载依赖
dotnet publish -f netcoreapp3.1 //发布3.0版本
dotnet publish -f net456 //发布netframework4.5版本
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加菲的博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
    • 问题
    • 默认值
    • 手动设置语言版本
    • 解决问题
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档