簡體   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