运行 .net 程序时未找到 Dotnet 3.1.0,但已在 Rhel 7 上安装
Dotnet 3.1.0 not found when running .net program, but it's installed, on 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 returns 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
开始新的 shell 会话,其中 .NET 版本 XY 可用。
如果您想要真正的并行安装,RHEL 8 中的 .NET 包全部安装到 /usr/lib64/dotnet
并且将并行工作。
当 运行 一个 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 returns 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
开始新的 shell 会话,其中 .NET 版本 XY 可用。
如果您想要真正的并行安装,RHEL 8 中的 .NET 包全部安装到 /usr/lib64/dotnet
并且将并行工作。