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

归档Xamarin应用时无法找到Mono.Android程序集的问题咨询

Xamarin项目归档iOS时Mono.Android引用错误问题解答

问题1:Mono.Android程序集的存放位置

Mac系统下,Mono.Android程序集主要存在两个核心位置:

  • Xamarin.Android框架安装目录:
    /Library/Frameworks/Xamarin.Android.framework/Versions/{XAMARIN_ANDROID_VERSION}/lib/xbuild-frameworks/MonoAndroid/{API_LEVEL}/Mono.Android.dll
    
    例如针对Android 9.0(API28),路径可能为:
    /Library/Frameworks/Xamarin.Android.framework/Versions/10.1.1.3/lib/xbuild-frameworks/MonoAndroid/v9.0/Mono.Android.dll
    
  • Android SDK平台目录:
    ~/Library/Developer/Xamarin/android-sdk-macosx/platforms/android-28/Mono.Android.dll
    

问题2:归档iOS项目触发Android程序集错误的原因

出现这种跨平台引用错误的常见原因:

  • iOS项目间接引用了Android专属代码:共享项目/NetStandard库中未做平台隔离,导致iOS构建时加载了Android的API引用
  • iOS项目的.csproj文件被篡改:意外添加了<Reference Include="Mono.Android"的引用项
  • 归档配置异常:iOS归档任务错误关联了Android项目的构建目标,导致构建流程尝试加载Android程序集
  • NuGet包依赖污染:iOS项目安装的某个NuGet包间接依赖了Mono.Android组件

问题3:解决方案及版本显示0.0.0.0的处理

关于版本显示0.0.0.0的原因

这是VS for Mac无法正确识别程序集版本的表现,通常是引用路径错误、Xamarin.Android版本与项目目标API不匹配,或者程序集文件损坏导致的。

具体解决步骤

  1. 清理iOS项目的错误引用
    打开iOS项目的.csproj文件,搜索<Reference Include="Mono.Android",如果找到直接删除该引用节点,保存后重新加载项目。

  2. 隔离共享代码的Android依赖
    检查共享项目/NetStandard库中的代码,确保Android专属命名空间(如Android.App、Android.Widget)被条件编译包裹:

    #if __ANDROID__
    // Android专属代码
    #endif
    
  3. 修复Xamarin.Android安装

    • 打开VS for Mac的「工具」-「SDK管理器」,确认Android 9.0(API28)的所有组件已完整安装,包括对应版本的Xamarin.Android框架(API28对应Xamarin.Android 10.x系列)
    • 若怀疑组件损坏,可卸载后重新安装Xamarin.Android组件
  4. 手动修正Android项目的引用路径
    删除Android项目中现有的Mono.Android引用,手动编辑.csproj文件,添加正确的路径引用:

    <Reference Include="Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065">
      <HintPath>/Library/Frameworks/Xamarin.Android.framework/Versions/10.1.1.3/lib/xbuild-frameworks/MonoAndroid/v9.0/Mono.Android.dll</HintPath>
    </Reference>
    

    保存后重新加载项目,版本信息会自动识别。

  5. 清理缓存并重建

    • 删除解决方案下所有bin、obj目录,清除构建缓存
    • 先单独构建Android项目确保无错误,再构建iOS项目,最后尝试归档
  6. 检查NuGet包依赖
    查看iOS项目的NuGet包列表,排查是否存在依赖Mono.Android的包,如有则更新为跨平台兼容版本或替换为替代包


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 20:33:21