我已经在 Arch Linux 上使用 pacman 安装了最新版本的 .net core:
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
时,返回此错误:
找不到任何兼容的框架版本 指定框架“Microsoft.AspNetCore.App”,版本“2.1.0”是 没有找到。
为什么版本看似匹配,但无法运行?
更多详情:
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
的错误都消失了,无需使用 --runtime
标志:
https://aur.archlinux.org/packages/aspnet-runtime-bin
.NET Core 目前在 Arch 上不受支持,因此无法保证它能够正常工作。目前 64 位支持以下发行版:
请参阅此页了解更多信息。
您可以在 dotnet 存储库中看到与 Arch 相关的这些问题:
https://github.com/dotnet/coreclr/issues/4409
我没有针对您的问题的正确解决方案,但也许有一个解决方法。我正在使用基本操作系统,.net core 2.1 工作得很好,但我注意到我的元包路径与你的不同:
.NET Core SDK (reflecting any global.json):
Version: 2.1.300
Commit: adab45bf0c
Runtime Environment:
OS Name: elementary
OS Version: 0.4.1
OS Platform: Linux
RID: linux-x64
Base Path: /usr/share/dotnet/sdk/2.1.300/
Host (useful for support):
Version: 2.1.0
Commit: caa7b7e2ba
.NET Core SDKs installed:
2.0.0 [/usr/share/dotnet/sdk]
2.1.300 [/usr/share/dotnet/sdk]
您可以尝试将元包从安装文件夹
/opt/dotnet/shared
复制到/usr/share/dotnet/shared
这里的这个人在使用 Fedora 时也遇到了类似的问题:https://github.com/dotnet/core-setup/issues/4022
@tura08 答案是错误的,因为 .NET Core 应该像在所有其他 Linux 系统上一样在 Arch Linux 上运行。
我遇到了同样的问题,所以我只是报告了它https://github.com/dotnet/core-setup/issues/4216并且似乎dotnet-sdk包缺少aspnetcore-runtime-2.1依赖项。我给维护者写了电子邮件,所以我希望他能尽快修复软件包。
我在尝试安装全局工具时遇到了类似的问题。创建符号链接对我有用:
ln -s /opt/dotnet/ /usr/share/dotnet
升级所有软件包解决了问题:
pacman -Syu
它包括于 2018-06-12 11:24 UTC 更新的
dotnet-sdk
软件包 2.1.300-2:
https://www.archlinux.org/packages/community/any/dotnet-sdk/
只需安装这些:
sudo pacman -S dotnet-sdk aspnet-runtime