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

标签 linux asp.net-core configuration .net-core archlinux

我已经在 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/

相关文章:

angular - Azure AD 2.0 应用程序 - 无法从 Angular 客户端访问范围

java - 用于参数注入(inject)/属性管理的良好库

linux - control+c 无效

linux - 接受(2)而不听(2)

Linux 内核模块编程指南 - 示例 2.4

version-control - 什么是持续集成?

java - OpenSuse 12.3 + Java 双显示

linux - 如何在 linux makefile 中设置环境变量

c# - ASP.NET Core 中的状态码 406( Not Acceptable )

asp.net-core - Grpc.Net 与 Grpc.Core : What are the server side differences?