.net core 2.1.4难道不向下兼容2.1.1?

笨笨阿林
  • 272

在visual studio 2017中用asp.net core webapi模板新建了一个demo项目testdotnetcore2,然后发布到远程服务器(腾讯云服务器CentOS 7)上。

接着在腾讯云服务器的发布目录上运行dotnet testdotnetcore2.dll时,提示如下错误:

It was not possible to find any compatible framework version
The specified framework 'Microsoft.AspNetCore.App', version '2.1.1' was not found.
- Check application dependencies and target a framework version installed at:

/

- Alternatively, install the framework version '2.1.1'.

图片描述

大概意思是版本不兼容,没找到2.1.1版,而我之前在腾讯云服务器安装的版本是2.1.4:
图片描述

难道.net core 2.1.4不向下兼容2.1.1的吗?

======================================================================
20181028补充:

注:事实上问题截图中所说的“没找到2.1.1版”,指的是没找到“Microsoft.AspNetCore.App的2.1.1版”,而不是没找到“.net core的2.1.1版”。Microsoft.AspNetCore.App是asp.net core(包括在.net core中)所创建的webapi项目的一个依赖项。

折腾了两天,终于解决了。

切记一点:服务器上不要用网上大部分教程中所说的yum install来安装sdk,这样安装的版本和/或其依赖包的版本与客户端安装的很可能不一致,从而导致出错。

解决步骤:

1)先删除服务器上之前通过yum install安装的dotnet-sdk:yum remove dotnet*

2)在微软官网页面微软Github发布页面分别下载同一个版本号(如2.1.403)、同一种平台架构(如x64)的SDK的Windows安装程序(.NET Core Installer;客户端用Mac的下载相应的Mac版即可)和Linux二进制(.NET Core Binaries)(注:SDK包含了与之匹配的Runtime,因此不需要另外再下载Runtime):

Windows安装程序直接点击链接下载即可;
Linux二进制下载(在网页上点击下载链接可提取到url):wget https://download.visualstudio.microsoft.com/download/pr/e85de743-f80b-481b-b10e-d2e37f05a7ce/0bf3ff93417e19ad8d6b2d3ded84d664/dotnet-sdk-2.1.403-linux-x64.tar.gz

3)分别安装:

Windows安装程序为exe执行文件,直接双击安装即可;
Linux二进制安装(在网页上点击下载链接时会同时打开[安装指南页面][5]):
    mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-2.1.403-linux-x64.tar.gz -C $HOME/dotnet
    export DOTNET_ROOT=$HOME/dotnet 
    export PATH=$PATH:$HOME/dotnet
    
    注意:最好将这两个环境变量写入.bashrc或.zshrc文件中,以免当前shell关闭后就失效了。

4)客户端使用visual studio发布asp.net core应用时,注意选择刚刚安装的版本(如果安装了多个不同版本的话),发布到服务器后,在服务器上运行启动服务,应该就正常了。

回复
阅读 5.7k
1 个回答
罗志
  • 1
新手上路,请多包涵

感谢楼主我也是腾讯的云服务器 今天搞了一下午,总以为我本机是netcore2.1.1版本 换了又换 坑死人啦 非常感谢,
不介意可以交个朋友 QQ:1052231926

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏