arch linux 上的 asp.net core 2.1 无法运行

问题描述 投票:0回答:7

我已经在 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>
linux asp.net-core configuration .net-core archlinux
7个回答
2
投票

这个问题很老了,但是如果有人试图让 .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



2
投票

.NET Core 目前在 Arch 上不受支持,因此无法保证它能够正常工作。目前 64 位支持以下发行版:

  • 红帽企业 Linux 7、6
  • CentOS 7
  • Oracle Linux 7
  • 软呢帽 27
  • Debian 9、8.7 或更高版本
  • Ubuntu 18.04、17.10、16.04、14.04
  • Linux Mint 18、17
  • openSUSE 42.3 或更高版本
  • SUSE Enterprise Linux (SLES) 12 Service Pack 2 或更高版本
  • Alpine Linux 3.7或更高版本

请参阅此页了解更多信息。

您可以在 dotnet 存储库中看到与 Arch 相关的这些问题:

https://github.com/dotnet/coreclr/issues/4409

https://github.com/dotnet/corefx/issues/19447

https://github.com/dotnet/core-setup/issues/3845


1
投票

我没有针对您的问题的正确解决方案,但也许有一个解决方法。我正在使用基本操作系统,.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


1
投票

@tura08 答案是错误的,因为 .NET Core 应该像在所有其他 Linux 系统上一样在 Arch Linux 上运行。

我遇到了同样的问题,所以我只是报告了它https://github.com/dotnet/core-setup/issues/4216并且似乎dotnet-sdk包缺少aspnetcore-runtime-2.1依赖项。我给维护者写了电子邮件,所以我希望他能尽快修复软件包。


0
投票

我在尝试安装全局工具时遇到了类似的问题。创建符号链接对我有用:

ln -s /opt/dotnet/ /usr/share/dotnet

0
投票

升级所有软件包解决了问题:

pacman -Syu

它包括于 2018-06-12 11:24 UTC 更新的

dotnet-sdk
软件包 2.1.300-2: https://www.archlinux.org/packages/community/any/dotnet-sdk/


0
投票

只需安装这些:

sudo pacman -S dotnet-sdk aspnet-runtime
© www.soinside.com 2019 - 2024. All rights reserved.