VS2017 netcore 发布遇到错误,框架依赖型应用程序主机需要一个至少netcoreapp2.1的目标框架

本文介绍了使用最新版VS2017开发.netcore 2.0项目时发布报错的问题。项目在本机编译运行正常,但发布失败,提示框架依赖型应用程序主机需至少“netcoreapp2.1”的目标框架。作者通过对比发现使用.netcore 2.1.201版本的SDK可正常发布,介绍了下载安装该SDK及Runtime的方法,还说明了配置项目使用SDK的命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、引言

.netcore目前处于高速发展时期,版本更新比较快,vs2017最新版本对.netcore支持也跟进的比较快,使用最新版本的vs2017开发历史版本的.netcore项目时多多少少会碰到一些兼容性问题,虽然微软声称是兼容历史版本的,但是采坑依然是少不了的。

二、问题

开发环境:VS2017(版本号15.8.1)

团队项目使用的是.netcore 2.0开发的,项目在本机编译运行都是ok的,但是发布时候发布失败了,提示如下错误:

Web发布活动窗口如下提示:

重点在这句提示:

C:\Program Files\dotnet\sdk\2.1.400\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(125,5): 错误 NETSDK1068: 框架依赖型应用程序主机需要一个至少 “netcoreapp2.1” 的目标框架。

意思就是使用.netcore 2.1.400版本的SDK发布项目,需要项目的框架为netcoreapp2.1,即:

经测试,目标框架选择为.Net Core 2.1后正常发布,但是项目还没做好全面升级到2.1的准备,不确定这么改会不会导致其他问题,所以需要考虑其他解决途径。

三、解决方法

本人VS是在线安装的,我们可以看到默认安装的.netcore sdk有这几个版本的:

再对比了下同事可以正常使用的:

可以发现项目使用.netcore 2.1.201版本的SDK是可以正常编译发布的,那就安装.netcore SDK 2.1.201吧。因为.netcore是开源的,git上可以找到各个历史版本的下载地址,2.1.201地址是https://github.com/dotnet/core/blob/master/release-notes/download-archives/2.1.201-sdk-download.md,或者去微软的官方地址下载https://www.microsoft.com/net/download/dotnet-core/2.0,可以看到各个版本的SDK,以及SDK对应的Runtime。

根据版本号下载安装需要安装的SDK和Runtime即可

【重点】配置项目使用的SDK:

Win+R,输入cmd,打开命令行,使用cd命令进入项目所在目录,执行命令:

dotnet new global.json --sdk-version 2.1.201

此命令的版本号根据自己实际情况调整。

dotnet --version

可以查看项目当前使用的SDK版本号

创建成功以后,可以看到项目目录下生成了一个global.json文件,内容为:

{
  "sdk": {
    "version": "2.1.201"
  }
}

此后再使用VS生成发布项目就可以正常发布了。SDK对应的Runtime也是需要安装的,不然项目可以编译发布不能本机运行。

 

四、番外

微软的版本帝并非浪得虚名,上边提供的两个.netcore SDK 2.1.201的下载地址,细心就可以发现,对应的Runtime版本号竟然是不一样的!!!

git上给出的下载地址是v2.0.7

另外一个对应的竟然是2.0.8

只测试了下Runtime2.0.7可以使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据的流

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值