.net - 运行 .net 程序时找不到 Dotnet 3.1.0,但它已安装在 Rhel 7 上
问题描述
运行 dotnet 应用程序时,我得到:
It was not possible to find any compatible framework version
The framework 'Microsoft.NETCore.App', version '3.1.0' was not found.
- The following frameworks were found:
5.0.10 at [/opt/rh/rh-dotnet50/root/usr/lib64/dotnet/shared/Microsoft.NETCore.App]
You can resolve the problem by installing the specified framework and/or SDK.
The specified framework can be found at:
- https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=3.1.0&arch=x64&rid=rhel.7-x64
但是安装好了!dotnet -v 返回 5.0.0 版本,因为这是最新版本。如何让它找到 3.1 运行时?
/opt/rh/rh-dotnet31/root/etc/dotnet
/opt/rh/rh-dotnet31/root/usr/bin/dotnet
/opt/rh/rh-dotnet31/root/usr/lib64/dotnet
/opt/rh/rh-dotnet31/root/usr/lib64/dotnet/dotnet
/opt/rh/rh-dotnet50/root/etc/dotnet
/opt/rh/rh-dotnet50/root/usr/bin/dotnet
/opt/rh/rh-dotnet50/root/usr/lib64/dotnet
/opt/rh/rh-dotnet50/root/usr/lib64/dotnet/dotnet
解决方案
不幸的是,Red Hat 在 RHEL 7 上提供的 .NET 软件包并不是真正并行的。这只是 RHEL 8 及更高版本中的情况。
要执行您想做的事情,您可能希望通过在新的 shell(或终端)中运行它来使 .NET Core 3.1 成为当前环境的一部分:
scl enable rh-dotnet31 -- bash
此命令不是持久的。它启动一个新的 bash 会话,其中 .NET Core 3.1 是默认的 .NET 版本。
通常,对于 RHEL 7,您可以选择一次启用哪个 .NET 版本,方法是:
scl enable rh-dotnetXY bash
在 .NET 版本 XY 可用的情况下启动新的 shell 会话。
如果您想要真正的并行安装,则 RHEL 8 中的 .NET 包都将安装到/usr/lib64/dotnet
并且将并行工作。
推荐阅读
- iphone - 从 Xcode 成功构建的应用程序,创建的 .ipa 文件已安装但未启动
- salesforce - 将参数从 VF 页面传递到命令按钮操作
- continuous-integration - 如何在 1 个作业中定义 2 个具有不同条件的工件?
- linux - 页面错误处理程序可以生成更多页面错误吗?
- angular - 断开前一个套接字连接并建立一个新连接
- python - 如何在 Tensorflow 框架中使用 L2-Loss 函数进行目标检测 CNN?
- swift - 如何使用 FCM 修复推送通知中的声音相关问题
- machine-learning - 如何对数百个类和每个类中样本量较少的文本数据进行分类
- javascript - 如何使用 Ajax 在 WordPress 中添加分页(我有代码需要调试)?
- php - 对数组进行分组并按相同的键值分配唯一编号