Closed lianghao620 closed 3 years ago
需要安装高版本的 .NET Core SDK, using declaration
是 C# 8.0 之后有的新特性,需要 .NET Core SDK 3.0 及以上才可以,因为测试项目和示例项目都是 .NET 5.0 的,建议安装 .NET 5 SDK https://dotnet.microsoft.com/download/dotnet/thank-you/sdk-5.0.201-windows-x64-installer
或者可以尝试修改项目 LangVersion
为 preview
我本地测试.net core 2.1 是能正常跑的,这个报错是腾讯云编译的报错 可能是 c#9.0太新 腾讯云的 的docker编译不支持吧...
你本地应该有别的高版本的 SDK 吧,docker 一般只包含特定版本的 SDK,docker 的话可以用 5.0 试一下
Target framework | version | C# language version default |
---|---|---|
.NET | 5.x | C# 9.0 |
.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 | all | C# 7.3 |
原来我的程序用不了这个包。建议你在NuGet 上标注一下 支持的netcore版本
Nuget 包可以用,项目是基于 .netstandard2.0
的,.NET Core 2.0 的项目都可以用
只是你用编译的话要 SDK 支持才能编译通过,nuget 包能不能使用和 C# 语言版本没有直接关系
你可以直接引用 Nuget 包
我是直接用nuget 包的, 不过dockefile 里面 因为我的程序是2.1 的 所以
FROM mcr.microsoft.com/dotnet/sdk:2.1 AS build 编译 dockerfile 构建镜像就报错了...
应该不会,能提供一个可以复现的示例吗,晚上回去看一下
腾讯云镜像构建报的错 。 不知道是不是 腾讯云的原因。我的程序是netcore2.1, visual studio 应该不用5.0的环境来运行,应该跟我本地5.0的sdk 没有关系。 晚点我试试 本地能不能 用这个dockerfile成功构建镜像吧。
嗯,只是用 Nuget 包的话是不需要的,如果要编译源码会需要
C# 9.0 is supported only on .NET 5 and newer versions. Target framework | version | C# language version default |
---|---|---|
.NET | 5.x | C# 9.0 |
.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 | all | C# 7.3 |
根据微软文档 c#9.0 只支持 .net 5 但是 你的源码里是有用到 c# 9.0 语法的。请问这是为什么,求赐教。
我本地的 SDK 版本装的是最新的,C# 的语法和编译器版本有关系,和 SDK 版本有关系,框架版本的不同只是提供了更多的 API,高版本的框架会有更多的 API 支持
修改项目 LangVersion 为 preview 腾讯云的编译就通过了,看来c#9.0太新 腾讯云的容器服务 镜像构建 编译器没 跟上?
提示这个 The feature 'using declarations' is currently in Preview and unsupported. To use Preview features, use the 'preview' language version.