linux - dotnet 命令找不到 .NET Core 2.1 的新安装
问题描述
我正在尝试在我的 Debian 9 服务器上托管 ASP.NET Core 应用程序。我之前安装了 .NET Core 1,并且一直在尝试为 .NET 2.1 安装运行时/托管。
我已按照我的发行版的官方安装说明进行操作,但是dotnet --version
命令输出 1.0.1,并dotnet --info
输出
.NET 命令行工具 (1.0.1) 产品信息: 版本:1.0.1 提交 SHA-1 哈希:005db40cd1 运行环境: 操作系统名称:debian 操作系统版本:9 操作系统平台:Linux RID:debian.8-x64 基本路径:/opt/dotnet/sdk/1.0.1
当我尝试仅运行已复制到服务器的基本模板应用程序时,它会输出
找不到指定的框架“Microsoft.NETCore.App”,版本“2.1.0”。 - 检查应用程序依赖项并定位安装在以下位置的框架版本: /opt/dotnet/shared/Microsoft.NETCore.App - 安装了以下版本: 1.1.1 1.0.4 - 或者,安装框架版本“2.1.0”。
果然/opt/dotnet/shared/Microsoft.NETCore.App
只包含1.1.1和1.0.4的子目录,还...
$ sudo apt install aspnetcore-runtime-2.1 [sudo] root 密码: 阅读包裹清单...完成 构建依赖树 读取状态信息...完成 aspnetcore-runtime-2.1 已经是最新版本 (2.1.2-1)。
我必须做什么才能找到运行时?
评论中问题的答案:
$ 哪个 dotnet /usr/local/bin/dotnet
dpkg -L 的输出很长,但我认为这给了我问题的原因。2.1 运行时的文件都在下面/usr/share/dotnet
而不是/opt/dotnet
. 运行时dotnet
使用的/usr/local/bin
是查看旧运行时的版本,但看起来有一个/usr/bin/dotnet
查看新版本的版本……我都按照 Microsoft 的说明进行了两次安装,所以我不确定它为什么如此不同。
解决方案
当您dotnet
在命令行上输入时,您的 shell 会在您的$PATH
. 您似乎dotnet
安装了两个命令,一个在/usr/local/bin/dotnet
,另一个在/usr/bin/dotnet
。/usr/local/bin/
首先出现在你的$PATH
所以你的shell/usr/local/bin/dotnet
在你输入时运行dotnet
。
/usr/local/bin/dotnet
是,我怀疑,一个符号链接到/opt/dotnet/dotnet
. 该版本包含 2 个 .NET Core 运行时版本(如 所示dotnet --info
):1.0.4 和 1.1.1。听起来这是由用户手动安装的,可能是通过从发布 tarball 中提取到/opt/dotnet
.
(这些版本非常过时。它们还包含已知的安全漏洞)
/usr/share/dotnet/
由dotnet-*
和aspnetcore*
包通过安装apt
。其中包含 2.1 版软件包。
您有几个选项可以解决此问题:
如果
/usr/local/bin/dotnet
不属于包管理器(dpkg --search /usr/local/bin/dotnet
不列出包),那么您可以简单地rm
使用它。然后dotnet
会的意思/usr/share/dotnet/dotnet
。您也可以删除/opt/dotnet
.如果
/usr/local/bin/dotnet
由包管理器拥有,请在dpkg --search
输出中找到包的名称并删除该包。$PATH
您可以在您的.bashrc
(或等效的外壳配置文件)中覆盖。添加一行,如export PATH=/usr/bin:/usr/local/bin:/bin:/usr/game
.
我强烈推荐选项 1。
我不确定为什么将两者安装在不同的位置并使用不同的可执行文件。也许在您安装的版本发布后,安装说明已更改并且软件包可用?
推荐阅读
- powershell - Powershell 核心脚本仅在 pwsh 命令中运行
- azure - 将 Azure AD B2C 用户连接到我的数据库帐户的正确 Core 3.0 API 中间件?
- ssl - SSL 在所有主机上都失败。(SSL证书问题:证书链中的自签名证书)
- python - 如何为 .csv 文件中找到的每个重复条目创建一个新列表?
- python - 无法将超过 1000 条记录写入 HDFS 配置单元表 pyspark
- java - 5 次迭代后退出循环函数
- node.js - 即使选择器返回命中也无法单击元素
- java - 远程 Kafka 连接问题 - 代理可能不可用
- python - 根据时间戳间隔创建 csv 文件的数据框
- javascript - OnKeyPress 不触发