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

使用decompress-assemblies解压后能否将Xamarin程序集压缩为assemblies.blob

结论

可以重新生成可被Xamarin.Android运行时正常识别加载的assemblies.blob文件,但无法通过通用压缩工具完成该操作,必须匹配Xamarin.Android自定义的程序集存储格式要求。

具体说明
  • decompress-assemblies是Xamarin.Android构建工具链的内置组件,作用是解包APK内以自定义LZ4格式存储的程序集压缩包,解包输出独立dll文件的过程本身是可逆的,官方工具链本身就提供了配对的压缩逻辑。
  • 官方配套的重打包工具是同工具集下的compress-assemblies命令行程序,和你用来解压的decompress-assemblies来自同个Xamarin.Android构建版本目录,执行命令参考如下:
    compress-assemblies -i <存放解压后所有dll文件的目录路径> -o <生成新blob文件的输出目录路径>
    
    执行完成后会在输出目录生成两个必须配套使用的文件:assemblies.blob(压缩后的程序集内容块)、assemblies.manifest(存储每个程序集在blob内的偏移位置、长度、校验值的索引文件)。
注意事项
  • 禁止使用7-Zip、WinRAR等通用压缩工具将dll打包为zip后改后缀生成assemblies.blob,Xamarin.Android运行时不识别通用压缩格式,加载时会直接抛出格式错误。
  • 替换APK内文件时必须同时替换成对生成的assemblies.blob和assemblies.manifest,单独替换其中一个会因为索引不匹配、校验失败导致应用启动闪退。
  • 重打包时要保证输入目录包含原APK内所有的程序集文件,不要遗漏;如果修改/替换了部分dll,要保证dll版本和当前APK内嵌的Xamarin运行时版本兼容,否则会出现运行时加载异常。
  • 完成文件替换后,需要对APK整体重新签名才能正常安装到设备上。

内容的提问来源于stack exchange,提问作者paddle.code

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 12:45:35