首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >arch linux上的asp.net核心2.1不能运行

arch linux上的asp.net核心2.1不能运行
EN

Stack Overflow用户
提问于 2018-06-05 05:59:06
回答 6查看 3K关注 0票数 2

我已经在Arch Linux上使用pacman安装了最新版本的.net核心:

代码语言:javascript
复制
sudo pacman -S dotnet-sdk

运行dotnet --info会显示正确的版本:

代码语言:javascript
复制
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/返回:

代码语言:javascript
复制
2.1.300  NuGetFallbackFolder

.csproj文件的内容:

代码语言:javascript
复制
<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>

</Project>
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2021-01-27 02:02:33

这个问题很老了,但是如果有人想让.NET 5在Arch上运行,这可以给你提供另一个解决方案。

如果您构建、发布和运行指定平台运行时的项目,dotnet将构建一个独立的应用程序,并具有所有必要的特定于平台的依赖项。

您可以使用--runtime/-r标志来做到这一点。

Arch示例:

代码语言:javascript
复制
dotnet build -r linux-x64
代码语言:javascript
复制
dotnet run -r linux-x64
代码语言:javascript
复制
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标志:

https://aur.archlinux.org/packages/aspnet-runtime-bin

票数 1
EN

Stack Overflow用户

发布于 2018-06-05 08:34:20

.NET核心目前在Arch上不受支持,所以不能保证它会工作。目前64位支持以下发行版:

Debian9、8.7或更高版本versions

  • Ubuntu 18.04、17.10、16.04、14.04<代码>H212<代码>H113 versions

  • SUSE Mint 18,17<代码>H214<代码>H115versions

  • SUSE

  • CentOS (SLES) 12

Pack2或更高版本<代码>H218<代码>H119versions

  • SUSE Linux3.7或更高版本<代码>H220<代码>F221

有关详细信息,请参阅this page

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

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

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

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

票数 1
EN

Stack Overflow用户

发布于 2018-06-06 02:58:43

对于您的问题,我没有合适的解决方案,但可能有变通的办法。我使用的是基础操作系统,.net核心2.1运行良好,但我注意到我的元包路径与您的不同:

代码语言:javascript
复制
.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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50689340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档