我在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
时会返回以下错误:
无法找到任何兼容的框架版本 指定的框架' 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>
答案 0 :(得分:2)
Arch目前不支持.NET Core,因此无法保证它可以正常工作。目前,64位支持以下发行版:
有关详细信息,请参阅this page。
您可以在dotnet repos中看到与Arch相关的这些问题:
https://github.com/dotnet/coreclr/issues/4409
答案 1 :(得分:1)
我没有针对您的问题的正确解决方案,但可能是一种解决方法。我使用的是基本的os和.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
答案 2 :(得分:1)
这个问题很老了,但如果有人试图让 .NET 5 在 Arch 上运行,这可以为您提供另一种解决方案。
如果您构建、发布和运行指定平台运行时的项目,dotnet
将构建一个自包含的应用程序,具有所有必要的平台特定依赖项。
您可以使用 --runtime
/-r
标志来做到这一点。
Arch 示例:
dotnet build -r linux-x64
dotnet run -r linux-x64
dotnet publish -r linux-x64
有关可用的运行时标识符,请参阅 Microsoft 文档: Neo4j Cypher: exclude certain nodes from result
编辑:
我在使用 AUR 包而不是 Snap 的路径时遇到的问题较少:
https://docs.microsoft.com/en-us/dotnet/core/rid-catalog
编辑 2:
安装 AUR 的 aspnet-runtime-bin
包后,所有关于 Microsoft.AspNetCore.App
not be found 的错误都消失了,没有使用 --runtime
标志:
https://aur.archlinux.org/packages/dotnet-sdk-bin/
答案 3 :(得分:0)
@ tura08回答是错误的,因为 .NET Core 应该像其他所有Linux系统一样在 Arch Linux 上运行。
我遇到了同样的问题所以我只是报告了它https://github.com/dotnet/core-setup/issues/4216并且似乎 dotnet-sdk 包缺少 aspnetcore-runtime-2.1 依赖项。我给维护者写了一封电子邮件,所以我希望他能尽快修好。
答案 4 :(得分:0)
我在尝试安装全局工具时遇到了类似的问题。创建符号链接对我有用:
ln -s /opt/dotnet/ /usr/share/dotnet
答案 5 :(得分:0)
升级所有软件包可以解决问题:
pacman -Syu
它包含dotnet-sdk
程序包2.1.300-2,于2018-06-12 11:24 UTC更新:
https://www.archlinux.org/packages/community/any/dotnet-sdk/