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

Xamarin Forms引用.NET Standard 2.0类库NuGet包加载失败问题

解决Xamarin.Forms引用跨平台NuGet包时的程序集加载错误

看起来你遇到的问题是Xamarin运行时无法找到NuGet包中的.NET Standard程序集——虽然包本身包含了该文件,且在.NET Core环境下能正常工作。这种情况通常和NuGet包的结构配置、Xamarin项目的目标框架兼容性或者缓存问题有关,下面是几个针对性的解决方案:

  • 检查NuGet包的目录结构是否符合规范
    Xamarin对NuGet包的目录结构有严格要求:.NET Standard程序集必须放在lib/netstandard2.0/目录下,平台特定的程序集要放在对应平台的子目录中(比如Android是lib/monoandroidXX/,iOS是lib/xamariniosXX/,XX为具体版本号)。解压你的nupkg文件,确认Matchmore.SDK.NetStandard.dll确实在lib/netstandard2.0/路径下,而非根目录或其他错误位置。

  • 验证nuspec打包配置的正确性
    如果是手动编写nuspec文件打包,一定要确保<files>节点正确映射了所有程序集的源路径和目标路径。举个正确的配置例子:

    <files>
      <!-- .NET Standard 2.0 程序集 -->
      <file src="bin/Release/netstandard2.0/Matchmore.SDK.NetStandard.dll" target="lib/netstandard2.0/" />
      <!-- Android平台程序集 -->
      <file src="bin/Release/MonoAndroid90/Matchmore.SDK.Android.dll" target="lib/monoandroid9.0/" />
      <!-- iOS平台程序集 -->
      <file src="bin/Release/Xamarin.iOS10/Matchmore.SDK.iOS.dll" target="lib/xamarinios10/" />
    </files>
    

    注意目标框架的标识要准确,比如monoandroid9.0对应Android 9.0,xamarinios10对应iOS 10,要和你的项目目标框架版本匹配。

  • 清理缓存并重建项目
    缓存问题经常会导致这种奇怪的引用错误,按以下步骤操作:

    1. 删除Xamarin.Forms项目各个平台(Android、iOS、共享项目)的bin和obj目录;
    2. 清理NuGet缓存,在终端执行命令:dotnet nuget locals all --clear;
    3. 重新安装你的NuGet包,然后重建整个解决方案。
  • 确认Xamarin项目的目标框架版本
    .NET Standard 2.0需要Xamarin项目的目标框架达到一定版本才能支持:

    • Xamarin.Android需要目标框架为MonoAndroid 8.0及以上;
    • Xamarin.iOS需要目标框架为Xamarin.iOS 10.0及以上。
      打开项目属性,检查并更新目标框架版本到符合要求的范围。
  • 排查程序集依赖项
    虽然你的.NET Standard程序集在.NET Core中正常工作,但Xamarin的运行环境和.NET Core存在差异,可能依赖了一些Xamarin不支持的库。你可以用dotnet list package命令查看程序集的依赖,或者用ILSpy工具反编译程序集,确认所有依赖项都能在Xamarin环境中正常加载。

  • 直接引用程序集做测试
    暂时跳过NuGet包,直接将三个平台的程序集分别引用到对应的项目中(.NET Standard程序集引用到共享项目,Android程序集引用到Android项目,iOS程序集引用到iOS项目),如果这样能正常运行,说明问题肯定出在NuGet包的打包配置上,回到前面的步骤重新检查nuspec和目录结构。

内容的提问来源于stack exchange,提问作者Łukasz Młynik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 09:05:36