12

我有一个预先存在的ASP.NET Core 3.0应用程序,它已成功部署到Azure 应用服务(使用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.AspNetCore, Microsoft.EntityFrameworkCore, 并且Microsoft.Extensions已经更新到3.1.0
  • 我已经清理了我的解决方案,甚至删除了我的obj文件夹以确保没有任何挥之不去的引用。
  • 3.1.100此错误是从Microsoft.PackageDependencyResolution.targets.

我知道有些东西仍然挂在.NET Core 3.0依赖项上。但目前尚不清楚为什么这只会在部署期间引起问题。Azure App Service还没有为.NET Core 3.1做好准备吗?或者这是依赖解决目标的问题?

4

4 回答 4

16

直接问题(如原始问题中所确定)与设置的两个位置有关<TargetFramework>

  1. 项目文件(例如,csproj
  2. 发布配置文件(即pubxml

<TargetFramework>必须在两个位置更新,并且它们必须完全匹配。否则,发布将无法在文件中找到其目标,该project.assets.json文件是基于文件中的 构建<TargetFramework>csjproj

注意:您可能希望pubxml文件遵循文件中的<TargetFramework>集合csproj,但事实并非如此。

文本编辑器

要通过文本编辑器进行此修改,

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

视觉工作室 2019

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

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

警告:使用 IDE 时,您可能会在此处遇到问题。编辑配置文件时,您可能会看到项目文件中的值(即netcoreapp3.1)已被选中。但是,当您单击Save时,它​​将恢复为原始值(例如,netcoreapp3.0在我的情况下)。这是因为您实际上并没有更改界面中的值,Visual Studio 将其误认为基础值没有更改如果您临时切换另一个值(例如Configuration),则 Visual Studio 将识别出发生了更改,并且两个值都将在*.pubxml文件中更新。

再次感谢@PanagiotisKanavos 为我指明了正确的方向(请参阅原始线程的评论)。

于 2019-12-04T21:06:28.203 回答
2

打开项目文件夹;

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

    netcoreapp3.1

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

于 2019-12-11T14:14:19.513 回答
1

使用 VS web-publisher 时,我从 VS2019(ASP.NET Core Web 应用程序模板)中的一个全新的 net5.0 项目中收到此错误。解决方法如下:

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

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

    <TargetFramework>net5.0</TargetFramework>

该元素完全丢失了-伟大的工作MS

于 2021-01-18T19:37:57.593 回答
0

change

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

works for me.

于 2019-12-09T08:20:19.630 回答