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

移除.NET MAUI引用时遇"Cannot modify..."错误求助

解决.NET MAUI移除Microsoft.Maui.Controls引用时的"Cannot modify an evaluated object originating in an imported file"错误

问题详情

尝试移除.NET MAUI项目中**Microsoft.Maui.Controls (8.0.7)**引用时,触发错误提示:

Cannot modify an evaluated object originating in an imported file

错误关联文件路径:C:\Program Files\dotnet\packs\Microsoft.Maui.Sdk\8.0.7\Sdk\BundledVersions.targets

该问题始于将iOS项目升级到.NET 8后,后续甚至影响了原本正常运行的.NET 8 MAUI项目。已尝试重新安装MAUI NuGet包、MAUI SDK、各平台dotnet workload(广告清单安装失败)、修复VS 2022,均未解决。

解决方案

1. 不要手动移除SDK绑定的核心依赖

Microsoft.Maui.Controls是.NET MAUI SDK的核心组成部分,由SDK自动管理引用,禁止手动从项目中移除。路径异常警告本质是workload或SDK安装不完整导致的,而非引用本身存在问题。

2. 彻底清理并重装MAUI Workload

以管理员权限打开PowerShell或命令提示符,执行以下步骤:

  • 卸载所有MAUI相关Workload:
    dotnet workload uninstall maui
    dotnet workload uninstall maui-ios
    dotnet workload uninstall maui-android
    dotnet workload uninstall maui-windows
    dotnet workload uninstall maui-maccatalyst
    
  • 清理Workload缓存:
    dotnet workload clean
    
  • 重新安装完整MAUI Workload(若广告清单安装失败,指定版本安装):
    # 常规安装
    dotnet workload install maui --source https://api.nuget.org/v3/index.json
    
    # 指定版本安装(针对广告清单失败的情况)
    dotnet workload install maui --version 8.0.7 --source https://api.nuget.org/v3/index.json
    

3. 修复项目文件中的SDK引用

打开项目的.csproj文件,确保MAUI SDK引用配置正确:

  • 移除任何手动添加/修改的Microsoft.Maui.Controls引用节点
  • 保留SDK默认的核心依赖引用,示例配置如下:
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>net8.0-android;net8.0-ios;net8.0-maccatalyst</TargetFrameworks>
    <UseMaui>true</UseMaui>
    <!-- 其他项目属性保持不变 -->
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.Maui.Controls" Version="8.0.7" />
    <PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="8.0.7" />
  </ItemGroup>
</Project>

4. 清理项目和VS缓存

  • 删除项目目录下的obj和bin文件夹;
  • 删除VS缓存目录:%LOCALAPPDATA%\Microsoft\VisualStudio\<你的VS版本号>\ComponentModelCache下的所有文件;
  • 重启Visual Studio,重新生成项目。

5. 修复.NET SDK安装

  • 打开控制面板的「程序和功能」,卸载所有.NET 8相关的SDK和Runtime;
  • 下载并安装最新版.NET 8 SDK;
  • 运行dotnet --info命令,确认SDK和Workload状态显示正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 22:48:40