当我尝试部署.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或运行时,因此我应该使用现有的。有任何线索吗?
答案 0 :(得分:0)
我解决了这个问题。
因此,当我发布应用程序时,我将在vs代码中运行以下命令:
dotnet publish -c release
**该命令仍可在我的gcp云虚拟机中使用,但不适用于共享主机。
要解决此问题,我按照以下步骤操作:
我不明白为什么我的应用之前使用该代码之前只能工作2个月。我经验不足,但是我猜想他们是从服务器上卸载了一些东西,然后运行运行需要上传更多文件的应用程序。