如何在 centos 上将 dotnetcore 从 1.0.4 版本升级到 2.0.2 版本?

Posted

技术标签:

【中文标题】如何在 centos 上将 dotnetcore 从 1.0.4 版本升级到 2.0.2 版本?【英文标题】:how to upgrade dotnetcore from version 1.0.4 to version 2.0.2 on centos? 【发布时间】:2018-03-26 19:52:47 【问题描述】:

如何在 centos 上将 .net-core 从 1.0.4 版升级到 2.0.2 版? 我有一些asp.net核心应用在centos 7.4.1708版本上运行,现在dotnet的版本是1.0.4,那么如何升级到2.0.2版本呢?非常感谢!

抱歉,我知道了,不知何故,Microsoft 产品提要因错误而被删除,就是这样。

一些坑或提示:一般.net-core 1.0会安装在/opt/dotnet .net-core 2.0.0 将安装在 /usr/share/dotnet,所以当你完成 升级,你可能会想为什么命令“dotnet --version”的结果仍然是1.0.4,你需要取消链接/usr/local/bin/dotnet和ln -s usr/share/dotnet/dotnet,因为/usr/local/ bin 默认在 /usr/bin 之前。

如果您的应用程序是在 .net-core 1.0 下开发的,则它们无法在 .net-core 2.0.0,错误将是 “找不到任何兼容的框架版本 找不到指定的框架“Microsoft.NETCore.App”,版本“1.1.2”。 - 检查应用程序依赖项并定位安装在以下位置的框架版本:/ - 或者,安装框架版本 '1.1.2'"

.net-core 2.0.2版本情况下,没有上述麻烦问题。

csproj 文件:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.0" />
    <PackageReference Include="Pomelo.EntityFrameworkCore.mysql" Version="1.1.2" />
    <PackageReference Include="Pomelo.EntityFrameworkCore.MySql.Design" Version="1.1.2" />
  </ItemGroup>
  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
  </ItemGroup>
</Project>

【问题讨论】:

能否提供csproj文件? 【参考方案1】:

您的 centOS 上有多个 SDK。 如果你尝试

/usr/bin/dotnet --version

命令你会看到版本是2.0.2

你可以这样解决问题:

rm -f /usr/local/bin/dotnet
ln -s /usr/share/dotnet/dotnet /usr/local/bin/dotnet

【讨论】:

以上是关于如何在 centos 上将 dotnetcore 从 1.0.4 版本升级到 2.0.2 版本?的主要内容,如果未能解决你的问题,请参考以下文章

如何在CentOS 6.7上将PHP 5.3升级到PHP 5.6

如何在 CentOS 上将 Python3.5.2 设置为默认 Python 版本?

通过Jexus 部署 dotnetcore

如何在 centos 上将 subversion(svn) 1.6.11 版本升级到 1.8.5 版本?

[CentOS] 结合Nginx部署DotNetCore的demo项目

如何在 Centos 7 上将 php 从 cgi-fcg 更改为 php cli