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

引用LZ4Net的PCL及Xamarin Forms项目编译时出现LZ4cc文件未找到错误

解决Xamarin Forms中lz4net导致的LZ4cc程序集加载失败问题

我之前碰到过类似的非托管程序集加载坑,咱们一步步来排查和解决:

问题根源分析

lz4net依赖的LZ4cc是原生非托管程序集,而Xamarin的PCL/.NET Standard库本身无法直接承载非托管代码,再加上ILMerge对混合托管/非托管程序集的支持很差,这就导致了加载失败的问题。


具体解决方案

1. 优先改用纯托管的LZ4实现(最省心的方案)

非托管依赖在移动平台部署容易踩坑,建议直接替换为纯托管的LZ4库,比如LZ4.NET:

  • 先卸载当前的lz4net包:
    Uninstall-Package lz4net
    
  • 安装纯托管的LZ4.NET:
    Install-Package LZ4.NET
    

这个库完全用C#实现,没有任何非托管依赖,完美适配Xamarin Forms项目。

2. 如果坚持使用lz4net,需手动配置平台项目的原生库

如果你必须保留lz4net,需要确保每个平台项目都正确部署LZ4cc原生库:

  • Android项目:
    • 下载对应ABI的libLZ4cc.so文件(armeabi-v7a、x86、arm64-v8a等)
    • 在Android项目中创建lib/[ABI]目录(比如lib/armeabi-v7a),将.so文件放入
    • 右键.so文件→属性,设置生成操作为AndroidNativeLibrary,复制到输出目录为始终复制
  • iOS项目:
    • 获取对应架构的libLZ4cc.a静态库
    • 添加到iOS项目中,右键文件→属性,设置生成操作为EmbeddedNativeLibrary

注意:PCL/.NET Standard库不能直接引用这些原生库,必须由平台项目承载。

3. 放弃ILMerge,改用更适配Xamarin的合并方案

ILMerge不支持合并包含非托管代码的程序集,建议替换为:

  • Costura.Fody:自动嵌入所有依赖(包括非托管库),对Xamarin支持友好
    1. 安装包:
      Install-Package Fody
      Install-Package Costura.Fody
      
    2. 在项目根目录创建FodyWeavers.xml,内容如下:
      <Weavers>
          <Costura />
      </Weavers>
      
    这样编译时会自动把所有依赖嵌入主程序集,无需手动处理。

4. 彻底清理项目缓存(比单纯删bin/debug更彻底)

有时候缓存的中间文件会导致奇怪的问题,按以下步骤操作:

  • 右键解决方案→清理解决方案
  • 手动删除所有项目的bin和obj目录(不仅是PCL,还要包括Android/iOS项目)
  • 打开NuGet包管理器→管理解决方案的NuGet包→点击还原按钮,确保所有包都正确下载
  • 最后右键解决方案→重建解决方案

5. 配置程序集绑定重定向(如果版本不匹配)

如果是版本不兼容导致的加载失败,可以在平台项目的配置文件中添加绑定重定向:

  • 对于Android项目,在Properties/AssemblyInfo.cs附近的配置中添加:
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="LZ4cc" publicKeyToken="你的公钥令牌" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-1.0.15.93" newVersion="1.0.15.93" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
    
    公钥令牌可以通过反编译工具查看LZ4cc.dll的属性获取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:28:55