如何在 Ubuntu 上安装多个版本的 .Net SDK

如何在 Ubuntu 上安装多个版本的 .Net SDK

我正在尝试构建一个需要特定版本的.Net SDK 的.Net 应用程序,即:"version": "2.2.107"

最近的 apt 更新已将已安装的 .Net SDK 版本更新为最新版本2.2.300

是否可以安装同一个 SDK 的多个版本?

我可以安装多个次要 SDK 版本,如下所示

$ dotnet --list-sdks
2.1.700 [/usr/share/dotnet/sdk]
2.2.300 [/usr/share/dotnet/sdk]

我试图避免为了构建此应用程序而必须卸载当前安装的版本。

顺便提一下,Microsoft 下载页面没有提供安装特定版本的说明,我怀疑这是一个错误。即使您通过单击实际要安装的版本进入该页面,显示的命令也将始终安装最新版本。

https://dotnet.microsoft.com/download/linux-package-manager/ubuntu18-04/sdk-2.2.107

答案1

每个包管理器(如 APT 或 RPM)都会处理最新(且唯一最新)版本的包。它适用于 .Net Core 包,因此您不能同时拥有旧版本和新版本的包。Microsoft 已准备好脚本,用于在没有包管理器的情况下安装 .Net Core 二进制文件(.Net Core、ASP.NET Core SDK 和运行时)。您可以从此处下载此脚本:

https://dot.net/v1/dotnet-install.sh

使用此脚本,您可以指定要安装的版本(选项 -v 或 –version)以及要安装二进制文件的位置(选项 -i 或 –install-dir)。

  • 使用“apt remove dotnet-”卸载现有软件包,
  • 将使用“—version”选项指定的二进制文件安装到同一文件夹(/usr/share/dotnet)。

该脚本非常复杂,可以使用更多选项运行。第一次运行时指定“—help”以了解相关信息。注意:脚本会将安装文件夹添加到当前 $PATH 环境变量中,但不会添加到 shell 的配置文件中。您应该手动执行此操作。

答案2

问题在于包管理器在安装新版本之前会卸载旧版本。您可以使用 Microsoft 提供的 botnet-install 脚本从包管理器中独立获取和安装 dotnet 二进制包。您可以在此处找到所有说明: https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script

相关内容