找不到指定的框架'Microsoft.NETCore.App'版本'2.2.4'

时间:2019-09-14 12:18:27

标签: asp.net-core-webapi asp.net-core-2.2 .net-core-2.2

当我尝试部署.netcore 2.2应用程序时出现此错误:

  

找不到任何兼容的框架版本   找不到指定的框架“ Microsoft.NETCore.App”版本“ 2.2.4”。     -检查应用程序依赖性并确定安装在以下位置的框架版本:         C:\ Program Files \ dotnet \     -安装.NET Core必备软件可能有助于解决此问题:         https://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409     -.NET Core框架和SDK可以从以下位置安装:         https://aka.ms/dotnet-download     -已安装以下版本:在[C:\ Program Files \ dotnet \ shared \ Microsoft.NETCore.App] 1.0.4在[C:\ Program Files \ dotnet \ shared \ Microsoft.NETCore.App] 1.1.1 .12位于[C:\ Program Files \ dotnet \ shared \ Microsoft.NETCore.App] 2.0.3,位于[C:\ Program Files \ dotnet \ shared \ Microsoft.NETCore.App] 2.0.7,位于[C:\ Program在[C:\ Program Files \ dotnet \ shared \ Microsoft.NETCore.App] 2.1.4中的Files \ dotnet \ shared \ Microsoft.NETCore.App] 2.1.2在[C:\ Program Files \ dotnet \ shared \ Microsoft。 NETCore.App] 2.2.1,位于[C:\ Program Files \ dotnet \ shared \ Microsoft.NETCore.App]

在我运行的本地计算机上:


    dotnet --version

我收到以下响应:“ 2.2.102”,应用运行正常。我还只安装了Microsoft.NET Core运行时-2.2.1和Microsoft .NET Core SDK 2.2.102。因此不支持2.2.4版。

这是我的web.config:


    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <location path="." inheritInChildApplications="false">
        <system.webServer>
          <handlers>
            <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
          </handlers>
          <modules runAllManagedModulesForAllRequests="true">
              <remove name="WebDAVModule"/> 
          </modules>
          <aspNetCore processPath="dotnet" arguments=".\Optics.API.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess" />
        </system.webServer>
      </location>
    </configuration>

这是我的.csproj:


    <Project Sdk="Microsoft.NET.Sdk.Web">
      <PropertyGroup>
        <TargetFramework>netcoreapp2.2</TargetFramework>
        <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
        <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
      </PropertyGroup>
      <ItemGroup>
        <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.1" PrivateAssets="All"/>
        <PackageReference Include="Hangfire.Core" Version="1.7.0"/>
        <PackageReference Include="Hangfire.SqlServer" Version="1.7.0"/>
        <PackageReference Include="Hangfire.AspNetCore" Version="1.7.0"/>
        <PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.1"/>
        <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="4.0.1"/>
        <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0"/>
      </ItemGroup>
    </Project>

我还通过删除Microsoft.AspNetCore.App版本进行了测试


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

但是即使进行了更改,我仍然遇到相同的错误。此外,该应用程序已部署在共享的托管服务器中,并且我无权安装任何SDK或运行时,因此我应该使用现有的。有任何线索吗?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。

因此,当我发布应用程序时,我将在vs代码中运行以下命令:

dotnet publish -c release

**该命令仍可在我的gcp云虚拟机中使用,但不适用于共享主机。

要解决此问题,我按照以下步骤操作:

  1. 这次打开了Visual Studio,不是vs代码。
  2. 右键单击项目名称,然后单击“发布”。
  3. 在选择发布目标时,我选择了IIS,FTP等。
  4. 对于连接,我选择了文件系统并选择了目标位置。
  5. 在“设置”选项卡中,我选择了“配置:发行版”,“目标框架”:netcoreapp2.2, 部署模式:自包含,目标运行时:win-x64

我不明白为什么我的应用之前使用该代码之前只能工作2个月。我经验不足,但是我猜想他们是从服务器上卸载了一些东西,然后运行运行需要上传更多文件的应用程序。