.net core 2.1.4难道不向下兼容2.1.1?
在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应用时,注意选择刚刚安装的版本(如果安装了多个不同版本的话),发布到服务器后,在服务器上运行启动服务,应该就正常了。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
感谢楼主我也是腾讯的云服务器 今天搞了一下午,总以为我本机是netcore2.1.1版本 换了又换 坑死人啦 非常感谢,
不介意可以交个朋友 QQ:1052231926