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

在Visual Studio 2022中能否从Xamarin.iOS项目移除Mono.Android?

解决Xamarin.iOS Release目录出现Android相关文件的问题

核心结论

Release目录中出现Mono.Android及Android相关文件完全不合理——Xamarin.iOS项目本身不需要依赖Mono.Android程序集,这类文件属于错误引入,通过调整项目配置可以彻底排除。

具体操作步骤

1. 移除iOS项目中的Android相关依赖

  • 右键iOS项目(myapp.ios)→ 管理NuGet程序包,查看“已安装”标签,若存在Mono.Android或其他Android相关NuGet包,直接卸载。
  • 右键iOS项目→ 添加→ 引用,在“项目”标签中确认是否勾选了myapp.android项目,若有则取消勾选并移除该引用;在“程序集”标签中若能找到Mono.Android,同样移除。

2. 修正解决方案构建配置

  • 右键解决方案→ 配置管理器,在“活动解决方案配置”中选择Release:
    • 找到myapp.android项目,取消勾选其“生成”列的复选框,确保构建iOS项目时不会连带构建Android项目。
    • 确认iOS项目的“生成”和“部署”复选框仅针对iOS平台勾选。

3. 清理项目文件中的无效配置

手动编辑iOS项目的.csproj文件(右键项目→ 编辑项目文件),查找并删除以下内容:

  • 任何包含Mono.Android的引用节点,例如:
    <Reference Include="Mono.Android" />
    
  • 任何导入Android相关MSBuild目标的节点,例如:
    <Import Project="..\myapp.android\myapp.android.projitems" />
    

4. 强制清理输出并重新构建

  • 执行菜单→ 生成→ 清理解决方案,然后手动删除iOS项目下的bin和obj文件夹。
  • 若清理后仍有残留文件,可在.csproj中添加强制排除规则:
    <ItemGroup>
      <!-- 排除所有Android相关文件 -->
      <None Remove="bin/Release/**/*Android*" />
      <None Remove="bin/Release/**/*Mono.Android*" />
      <!-- 确保这些文件不会被复制到输出目录 -->
      <Content Remove="bin/Release/**/*Android*" />
      <Content Remove="bin/Release/**/*Mono.Android*" />
    </ItemGroup>
    
    添加后保存项目,重新构建Release版本。

问题根源分析

这类情况通常由以下原因导致:

  • 误将Android项目或Mono.Android程序集添加为iOS项目的引用。
  • NuGet包安装错误,不小心给iOS项目安装了Android专属包。
  • 解决方案配置管理器中,Android项目被设为iOS构建的依赖项,导致构建时将Android输出文件同步到iOS的Release目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 13:38:14