GitHub 的 Codespaces 可以让我们随时随地编写代码,一些简单的修改也非常方便快捷。特别是 .NET 7 发布后,一些可以直接升级的小项目只需要更改配置就可以了,我们可以直接云环境处理,并进行测试。
Codespaces 这个 Web 版的 IDE 其默认容器提供了相当多的环境,Python, Node.js, JavaScript, TypeScript, C++, Java, C#, F#, .NET Core, PHP, Go, Ruby, Conda。
使用
dotnet sdk check
命令我们可以发现,当前默认容器安装的 .NET 版本是 .NET 6 。
因为默认的云环境没有 .NET 7,所以当我们只是修改了
TargetFramework
或是在
TargetFrameworks
中加入
net7.0
后,肯定是会报错的:
The current .NET SDK does not support targeting .NET 7.0
当前需要我们自行安装 .NET 7, 这个就非常简单了,官网提供了万能的安装脚本,dotnet-install 脚本可以在不清楚平台的情况下自动帮你处理并完成安装,并且可以安装任何版本。
因为之前是直接下载二进制文件上传或是直接 exe 安装的,也是首次使用,所以这里有一些需要注意的地方,提醒一下首次使用脚本安装的朋友。
当前的脚本还是默认安装 .NET 6,还需要指定一下版本,另外指定版本也是有门道的,需要指定完整的版本信息。如果你想当然的指定了 7.0
的话,就会看到下面的报错:
dotnet_install: Error: Could not find `.NET Core SDK` with version = 7.0
dotnet_install: Error: Refer to: https://aka.ms/dotnet-os-lifecycle for information on .NET Core support
具体的版本号可以前往 .NET 7.0 下载页查询。
以下是指定当前的 7.0.100
curl https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh -O
bash dotnet-install.sh -v 7.0.100
最后删除安装脚本 dotnet-install.sh
,就可以愉快的 dotnet build
了。
假如项目规定了MSBUild版本,那么在安装完Visual Studio后,假如带的MSBUild版本与项目要求的版本不符合要求,那么可以把需要的MSBUild添加到系统中,然后即可使用。步骤如下:
假如项目需要使用V12的MSBUild,而安装的Visual Studio带的MSBUild版本为V14。
①到MSDN下载V12 MSBUild包,把V12包解压到目录
The current .NET SDK does not support targeting .NET Core 2.1. Either target .NET Core 1.1 or lower, or use a version of the .NET SDK that supports .NET Core 2.1. Google.Protobuf.Test
解决方式1
安装.ne...
今天在生成一个项目的时候,生成报错,错误如下:The current .NET SDK does not support targeting .NET Core 2.1. Either target .NET Core 1.1 or lower, or use a version of the .NET SDK that supports .NET Core 2.1."
使用的最新的visua...
目录问题解决方案
VS2017出现问题:The current.NET SDK does not support targeting .NET Core 3.1.Either target.NET Coare 1.1 or lower,or use a version of the .NET SDK that supports.NET Core 3.1
重新构建解决方案时出现以上问题,正常编译能通过,但是运行时出现问题:’“dotnet.exe”’ 不是内部或外部命令,也不是可运行的程序或批处理文
记一次VS2022升级.Net7导致原来的.Net6项目编译失败,最后不断排查直到解决的思路与心得【错误编码:NETSDK1045】(sdk排查 -> 分析器排查 -> VS2022升级日志排查)
分析一个.NET Core开源项目,打开后发现提示当前版本.NET Core 不支持。错误信息如下:The current .NET SDK does not support targeting .NET Core 2.0. Either target .NET Core 1.1 or lower, or use a version of the .NET SDK that supports ....
NETSDK1045:当前的 .NET SDK 不支持将“更新的版本”作为目标。 将“更旧的版本”或更低版本作为目标,或者使用支持“更新的版本”的 .NET SDK 版本。
遇到这种情况,可以先看一下是否安装.NET Core,打开cmd输入dotnet回车运行,如果出现’dotne’ 不是内部或外部命令,也不是可运行的程序或批处理文件。则是没有安装.NET Core,安装.NET Core即可。安装地址:https://dotnet.microsoft.com/en-us/download/dotnet/3.1。根据自己的电脑系统来安装即可。
有时,我们可能会在VS打开项目时,报因MSBuild版本问题而无法打开项目的情况,里面有一条关键的提示:“请将在 global.json 中指定的 .NET SDK 更改为需要当前可用的 MSBuild 版本的旧版。”
解决方法:
到微软官方(Url: https://dotnet.microsoft.com/en-us/download/dotnet)下载对应的.Net SDK即可。如果下载安装后仍无法解决,在项目.csproj对应目录中放置global.json文件(具体内容见正文),然后再打开。
对于出现java.lang.UnsupportedClassVersionError错误的原因,大都是因为我们编译java.class文件的jdk和我们运行java.class文件的jdk的版本不同而产生的。
我之前写过一篇 理解 C# 项目 csproj 文件格式的本质和编译流程,其中,Target 节点就是负责编译流程的最关键的节点。但因为篇幅限制,那篇文章不便详说。于是,我在本文说说 Target 节点。
本文内容Target 的节点结构Target 执行的时机和先后顺序Microsoft.NET.Sdk 为我们提供的现成可用的 Task使用自己写的 Task差量编译
Target 的节点结构