发布时迁移到 .NET 6.0 错误:资产文件没有“net5.0”的目标

Posted

技术标签:

【中文标题】发布时迁移到 .NET 6.0 错误:资产文件没有“net5.0”的目标【英文标题】:Migrating to .NET 6.0 error on publish: Assets file doesn't have a target for 'net5.0' 【发布时间】:2021-10-09 13:54:10 【问题描述】:

我正在尝试从 .NET 5 迁移到 .NET 6。我已经安装了 VS 2022 Community Preview 和 Hosting Bundle...并更新了 NuGet 中的所有内容。该项目将毫无错误地构建,但是当我发布它时,我收到以下错误:

Assets file 'D:\Data\CADE.core\FileManager\FileManager\obj\project.assets.json' doesn't have a target for 'net5.0'. 
Ensure that restore has run and that you have included 'net5.0' in the TargetFrameworks for your project.

我不知道为什么它仍在寻找 .NET 5 也不知道如何修复这个错误。

【问题讨论】:

可能只是删除您的binobj 文件夹 都删除了,同样的错误。 你能检查一下 .pubxml 文件吗?是否还有 .net5,id 是,然后更改为 .net6 LOL...我确实将生产和开发 .pubxml 文件从 5 更改为 6。现在它说的是同样的事情...除了将 'net5.0' 更改为 'net6.0 '。 我也进行了手动 NuGet 还原,但这并没有改变错误。 【参考方案1】:

在大家的帮助下,我找到了解决办法。我编辑了发布信息,Target Framework net6.0有一个红点。我单击下拉菜单,其中一个选项是“net6.0-windows”。我选择了它并正确发布。

【讨论】:

您使用的是 v5.0.11 的 Hosting Bundle 吗?是否运行 net6.0 应用程序? 对于我的项目,我根本没有在发布配置文件中指定目标框架,这在过去没有任何区别。 (TFM 在 csproj 文件中;为什么它也需要在发布配置文件中?)添加 TFM 解决了这个问题。 对我来说和 Doug 一样 - 我必须将 TFM net6.0 添加到发布配置文件 (pubxml)

以上是关于发布时迁移到 .NET 6.0 错误:资产文件没有“net5.0”的目标的主要内容,如果未能解决你的问题,请参考以下文章

Net6Net 5.0迁移到Net 6.0

Laravel 6.0 迁移 - SQLSTATE[HY000] [2002] 没有这样的文件或目录

路遥工具箱全面迁移至 .NET 6.0 并发布 3.0 版本及迁移记录详解

将 Flutter 应用迁移到 Flutter Web 时如何显示图像资产?

将 ASP.NET Core 5.0 IdentityServer4 升级到 6.0 错误 - 没有这样的表:键

ASP.NET 6.0 Core 迁移 ASP.NET Core 7.0