Windows下发布MAUI Release版本报错:project.assets.json无net6.0目标
问题描述
在Windows平台发布MAUI应用时,Debug和Release模式均可正常构建,Debug模式发布成功,但Release模式发布失败,重复出现以下报错:
Assets file 'XXXX\obj\project.assets.json' doesn't have a target for 'net6.0'. Ensure that restore has run and that you have included 'net6.0' in the TargetFrameworks for your project.
其中XXXX是MAUI项目引用的同解决方案下的辅助项目,已确认这些辅助项目的.csproj文件中已配置:
<PropertyGroup> <TargetFramework>net6.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> </PropertyGroup>
已尝试过的无效操作:清理Bin/Obj文件夹、清理解决方案、重新加载项目、执行dotnet restore、检查Azure服务身份验证。
解决思路
检查辅助项目的Release配置目标框架
右键辅助项目→属性→生成,切换到Release配置,确认目标框架是否为net6.0。部分项目的Debug和Release配置可能存在独立的TargetFramework设置,需确保Release配置与Debug一致。强制指定Restore的目标框架与运行时
在解决方案根目录执行带参数的restore命令,明确指定目标框架和发布架构:dotnet restore -f -r win-x64 --framework net6.0可根据实际发布需求调整
win-x64为win-x86或win-arm64。验证MAUI项目对辅助项目的引用配置
编辑MAUI项目的.csproj文件,检查ProjectReference是否未被条件编译限制在Debug模式:<ProjectReference Include="..\XXXX\XXXX.csproj" />移除类似
Condition="'$(Configuration)' == 'Debug'"的限制条件。清理全局NuGet缓存
执行命令清理NuGet全局缓存,避免损坏的缓存包干扰:dotnet nuget locals all --clear清理完成后重新执行
dotnet restore。检查MAUI发布配置的目标框架
打开MAUI项目的发布配置文件(路径通常为Properties/PublishProfiles/*.pubxml),确认<TargetFramework>设置为net6.0-windows,确保与辅助项目的net6.0目标框架兼容。手动生成辅助项目的Release模式assets文件
进入辅助项目的目录,执行以下命令强制生成Release模式下的project.assets.json:dotnet build --configuration Release --framework net6.0完成后回到MAUI项目重新尝试发布。
内容的提问来源于stack exchange,提问作者Valerio

