将ASP.NET Core 3.1网站发布到Azure时出错 注释

我有一个预先存在的 ASP.NET Core 3.0 应用程序,该应用程序已成功部署到 Azure App Service (使用AspNetCoreModuleV2模块)。将应用程序升级到 ASP.NET Core 3.1 (今天的发行版)后,该应用程序将在我的本地版本 IIS Express 上构建并正确运行。但是,当我尝试使用 Visual Studio 16.4 (今天的版本)发布到Azure App Service时,出现以下错误:

  

资产文件'C:\ Project \ obj \ project.assets.json'没有目标为'.NETCoreApp,Version = v3.0'。确保还原已运行,并且已在项目的TargetFrameworks中包含“ netcoreapp3.0”。

注释

  • 所有<PackageReference>microsoft.AspNetCoremicrosoft.EntityFrameworkCoremicrosoft.Extensions均已更新为3.1.0
  • 我已经清理了解决方案,甚至对我的obj文件夹进行了核对,以确保没有任何挥之不去的引用。
  • 此错误是由3.1.100的{​​{1}}版本产生的。

我发现某物仍然挂在 .NET Core 3.0 依赖项上。但是目前尚不清楚为什么这只会在部署期间引起问题。 Azure App Service的尚未准备好用于 .NET Core 3.1 吗?还是依赖解决方案目标有问题?

salanganeyuhaiyan 回答:将ASP.NET Core 3.1网站发布到Azure时出错 注释

在我最初的问题中已经确定,眼前的问题与设置<TargetFramework>的两个地方有关:

  1. 项目文件(例如csproj
  2. 发布个人资料(即pubxml

<TargetFramework>必须在两个位置进行更新,并且它们必须与完全匹配。否则,发布将无法在project.assets.json文件中基于<TargetFramework>构建的csjproj文件中找到其目标。您可能会期望pubxml文件将遵循<TargetFramework>文件中设置的csproj,但这不是 情况。

Visual Studio 2019

要通过 Visual Studio 2019 IDE进行此修改,

  1. 点击 Web一键发布工具栏上的齿轮图标(位于发布图标的右侧)。
  2. 假设目标框架未设置为netcoreapp3.1,请单击其旁边的编辑图标。
  3. 确保将目标框架设置为netcoreapp3.1
  4. 点击保存
  

警告:您可能会在这里遇到问题。当您编辑配置文件时,您很可能会从项目文件(即netcoreapp3.1)中看到新值。但是,当您单击保存时,它将恢复为原始值(例如,在我的情况下为netcoreapp3.0)。这是因为您实际上没有在界面中更改值,Visual Studio会因为没有更改值而犯错。如果您临时切换另一个值(例如 Configuration ),则Visual Studio会识别出更改,并且两个值都将被保存。

文本编辑器

  1. 打开~/Properties/PublishProfiles文件夹。
  2. 打开要编辑的*.pubxml
  3. <TargetFramework>的值修改为netcoreapp3.1
<TargetFramework>netcoreapp3.1</TargetFramework>

再次感谢@PanagiotisKanavos向我指出正确的方向(请参阅原始主题的评论)。

,

打开项目文件夹;

  • 导航到文件夹属性>> PublishProfiles
  • 打开文件FolderProfile.pubxml,然后将版本 3.0 更改为 3.1

    netcoreapp3.1

  • 最后,在发布之前重建应用程序

,

当我使用 VS 网络发布器时,我从 VS2019(ASP.NET Core Web 应用程序模板)中的一个全新的 net5.0 项目中得到了这个错误。解决方法如下:

  1. 打开文件:{project}\Properties\PublishProfiles\{project} - Web Deploy.pubxml

  2. <PropertyGroup> 元素中添加以下行:

    <TargetFramework>net5.0</TargetFramework>

元素完全丢失 - 很棒的 MS

,

更改

<PackageReferenceInclude="Microsoft.AspNetCore"Version="2.2.0" />
 to 
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" />

为我工作。

本文链接:https://www.f2er.com/2979859.html

大家都在问