我已经在 Arch Linux 上使用 pacman 安装了最新版本的 .net 核心:
sudo pacman -S dotnet-sdk
运行 dotnet --info
显示正确的版本:
Host (useful for support):
Version: 2.1.0
Commit: caa7b7e2ba
.NET Core SDKs installed:
2.1.0 [/opt/dotnet/sdk]
2.1.300 [/opt/dotnet/sdk]
我可以运行控制台应用程序,但是当我在 ASP.NET Core 目录中运行 dotnet run
时返回此错误:
It was not possible to find any compatible framework version The specified framework 'Microsoft.AspNetCore.App', version '2.1.0' was not found.
为什么版本看似匹配,却无法运行?
更多详情:
ls/opt/dotnet/sdk/
返回:
2.1.300 NuGetFallbackFolder
.csproj
文件的内容:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
</Project>
最佳答案
这个问题很老,但如果有人试图让 .NET 5 在 Arch 上运行,这可以为您提供另一种解决方案。
如果您构建、发布和运行指定平台运行时的项目,dotnet
将构建一个独立的应用程序,具有所有必要的平台特定依赖项。
您可以使用 --runtime
/-r
标志来做到这一点。
Arch 示例:
dotnet build -r linux-x64
dotnet run -r linux-x64
dotnet publish -r linux-x64
有关可用的运行时标识符,请参阅 Microsoft 文档: https://learn.microsoft.com/en-us/dotnet/core/rid-catalog
编辑:
我在使用 AUR 包而不是 Snap 的路径时遇到的问题也较少:
https://aur.archlinux.org/packages/dotnet-sdk-bin/
编辑 2:
安装 AUR 的 aspnet-runtime-bin
包后,所有关于 Microsoft.AspNetCore.App
not being found 的错误都消失了,没有使用 --runtime
标志:
https://aur.archlinux.org/packages/aspnet-runtime-bin
关于linux - arch linux 上的 asp.net core 2.1 无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50689340/