【问题标题】:ASP.NET Core: "The framework 'Microsoft.AspNetCore.App', version '3.1.0' was not found" when running a Framework-Dependant appASP.NET Core:运行依赖于框架的应用程序时“找不到框架‘Microsoft.AspNetCore.App’,版本‘3.1.0’”
【发布时间】:2021-06-01 06:59:31
【问题描述】:

我刚刚从Microsoft website 安装了 ASP.NET Core,但是当我尝试运行我的应用程序 (./Web) 时,我收到以下错误消息:

root@stm32mp1:/usr/local/Monitoring/Web# ./Web
It was not possible to find any compatible framework version
The framework 'Microsoft.AspNetCore.App', version '3.1.0' was not found.
  - No frameworks were found.


You can resolve the problem by installing the specified framework and/or SDK.

The specified framework can be found at:
  - https://aka.ms/dotnet-core-applaunch?framework=Microsoft.AspNetCore.App&framework_version=3.1.0&arch=arm&rid=openstlinux-weston.3.1-openstlinux-5-4-dunfell-mp1-20-11-12-arm

但是当我运行 dotnet --list-runtimes 时,它告诉我运行时设置正确:

root@stm32mp1:/usr/local/Monitoring/Web# dotnet --list-runtimes 
Microsoft.AspNetCore.App 3.1.0 [/usr/local/dotnet/shared/Microsoft.AspNetCore.App] 
Microsoft.NETCore.App 3.1.0 [/usr/local/dotnet/shared/Microsoft.NETCore.App]

这是dotnet --info 逗号的结果:


root@stm32mp1:/usr/local/Monitoring/Web# dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   3.1.100
 Commit:    cd82f021f4

Runtime Environment:
 OS Name:     openstlinux-weston
 OS Version:  3.1-openstlinux-5-4-dunfell-mp1-20-11-12
 OS Platform: Linux
 RID:         linux-arm
 Base Path:   /usr/local/dotnet/sdk/3.1.100/

Host (useful for support):
  Version: 3.1.0
  Commit:  65f04fb6db

.NET Core SDKs installed:
  3.1.100 [/usr/local/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.App 3.1.0 [/usr/local/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 3.1.0 [/usr/local/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

我的路径也设置正确:

root@stm32mp1:/usr/local/Monitoring/Web# echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/dotnet

我尝试了以下 ARM32 二进制文件:

  • SDK 3.1.406
  • ASP.NET Core 运行时 3.1.12
  • SDK 3.1.100
  • ASP.NET Core 运行时 3.1.0
  • 两个 SDK/运行时组合

但没有任何效果!

有关信息,我在 STM 和 openstlinux-weston(从 Yoctoproject 生成)的 ARM32 A7 处理器上运行此命令 以前,将此项目作为框架依赖执行是可行的,但现在我只能将其作为自包含运行,但我有很多项目,没有那么多空间....

希望有足够的信息来解决这个问题...

【问题讨论】:

    标签: linux visual-studio shell .net-core arm


    【解决方案1】:

    看起来这是 Visual Studio 发布过程中的一个问题。所以我重新开始按照这些步骤配置我的所有项目:

    清理了我的每个.csproj,因此调试/发布配置如下所示

    <Project Sdk="Microsoft.NET.Sdk.Web">
    
      <PropertyGroup>
        <TargetFramework>netcoreapp3.1</TargetFramework>
        <Configurations>Release;Debug</Configurations>
      </PropertyGroup>
    
      <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
        <DefineConstants>TRACE;Windows</DefineConstants>
      </PropertyGroup>
      <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
        <DefineConstants>TRACE;Linux</DefineConstants>
        <RuntimeIdentifier>linux-arm</RuntimeIdentifier>
      </PropertyGroup>
    
      <!-- ... -->
    

    重做所有项目的发布配置文件,使其如下所示:

    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        <WebPublishMethod>FileSystem</WebPublishMethod>
        <PublishProvider>FileSystem</PublishProvider>
        <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
        <LastUsedPlatform>Any CPU</LastUsedPlatform>
        <SiteUrlToLaunchAfterPublish />
        <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
        <ExcludeApp_Data>False</ExcludeApp_Data>
        <ProjectGuid>a3c8bed8-1269-4649-8573-ff4fb864100b</ProjectGuid>
        <publishUrl>bin\Release\netcoreapp3.1\linux-arm\publish\</publishUrl>
        <DeleteExistingFiles>False</DeleteExistingFiles>
        <TargetFramework>netcoreapp3.1</TargetFramework>
        <RuntimeIdentifier>linux-arm</RuntimeIdentifier>
        <SelfContained>false</SelfContained>
      </PropertyGroup>
    </Project>
    

    删除/bin/obj 文件夹。终于再次发布并且成功了!

    我多次重命名了我的所有项目配置(发布/调试),因此 Visual Studio 可能会弄乱不同的目录并将错误的文件发布到目标 Linux 平台。希望它可以帮助有同样问题的人。

    【讨论】:

      猜你喜欢
      • 2021-03-22
      • 2020-08-24
      • 2021-07-09
      • 2022-08-17
      • 2020-05-26
      • 2018-11-08
      • 2019-10-06
      • 1970-01-01
      相关资源
      最近更新 更多