You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac-Catalyst环境下MAUI应用编译报错:找不到.NET Framework 4.7.2引用程序集

MAUI Mac-Catalyst构建时.NET Framework 4.7.2引用错误解决办法

先排查可能的根源

  • 第三方NuGet包搞的鬼:有些包表面支持.NET 6,但底层偷偷依赖了.NET Framework 4.x,构建时会触发MSBuild去搜索这个不存在的框架。
  • 项目文件藏了旧配置:你以为都设成6.0了,但.csproj里可能有残留的TargetFramework或Reference指向4.7.2,比如条件编译的分支、导入的旧构建脚本。
  • 缓存没清干净:dotnet或MSBuild的缓存存了旧配置,导致构建时错误引用旧框架。
  • Mac-Catalyst默认配置的坑:构建Mac-Catalyst时某些默认设置可能关联到.NET Framework,得手动覆盖。

一步步解决

  1. 揪出搞事的NuGet包
    • 运行命令查看所有直接和间接依赖:dotnet list package --include-transitive
    • 找到带.NET Framework 4.7.2依赖的包,要么更新到支持.NET 6的最新版本,要么直接替换为无相关依赖的替代包。
  2. 检查项目文件细节
    • 打开.csproj文件,搜索4.7.2或.NETFramework相关条目,删除或修改为正确的目标框架配置。
    • 检查是否有<Import>标签导入了旧的.NET Framework相关.targets文件,有的话直接删除。
  3. 清理构建缓存
    • 执行以下命令彻底清理缓存:
      dotnet clean
      rm -rf ~/.nuget/packages
      rm -rf obj bin
      
    • 重新还原依赖:dotnet restore
  4. 给Mac-Catalyst明确目标框架
    • 确保项目文件里的目标框架配置正确,示例:
      <TargetFrameworks>net6.0-ios;net6.0-maccatalyst;net6.0-android</TargetFrameworks>
      <TargetFramework Condition="$([MSBuild]::IsOSPlatform('windows'))">net6.0-windows10.0.19041.0</TargetFramework>
      
    • 在<PropertyGroup>节点中添加<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>,禁用隐式的.NET Framework引用。
  5. 核对VS for Mac的配置
    • 确认Visual Studio for Mac已安装最新的.NET 6 SDK和Mac-Catalyst工作负载,前往「Visual Studio > 设置 > SDK管理器」核对组件完整性。

内容的提问来源于stack exchange,提问作者slappy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 15:12:25