我已经在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核心目录中运行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>
发布于 2021-01-27 02:02:33
这个问题很老了,但是如果有人想让.NET 5在Arch上运行,这可以给你提供另一个解决方案。
如果您构建、发布和运行指定平台运行时的项目,dotnet
将构建一个独立的应用程序,并具有所有必要的特定于平台的依赖项。
您可以使用--runtime
/-r
标志来做到这一点。
Arch示例:
dotnet build -r linux-x64
dotnet run -r linux-x64
dotnet publish -r linux-x64
有关可用的运行时标识符,请参阅Microsoft文档:https://docs.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
标志:
发布于 2018-06-05 08:34:20
.NET核心目前在Arch上不受支持,所以不能保证它会工作。目前64位支持以下发行版:
Debian9、8.7或更高版本versions
Pack2或更高版本<代码>H218<代码>H119versions
有关详细信息,请参阅this page。
您可以在dotnet repos中看到这些与Arch相关的问题:
https://github.com/dotnet/coreclr/issues/4409
发布于 2018-06-06 02:58:43
对于您的问题,我没有合适的解决方案,但可能有变通的办法。我使用的是基础操作系统,.net核心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
https://stackoverflow.com/questions/50689340
复制相似问题