繁体   English   中英

ASP.NET 核心:运行依赖于框架的应用程序时“找不到框架‘Microsoft.AspNetCore.App’,版本‘3.1.0’”

[英]ASP.NET Core: “The framework 'Microsoft.AspNetCore.App', version '3.1.0' was not found” when running a Framework-Dependant app

我刚刚从Microsoft 网站安装了 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 核心运行时 3.1.12
  • SDK 3.1.100
  • ASP.NET 核心运行时 3.1.0
  • SDK/运行时结合

但是没有任何效果!

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

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

看起来这是 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 平台。 希望它可以帮助有同样问题的人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM