微软OpenXML SDK版本2.0附带一个大约5111 KiB的.NET程序集(DLL)和一个大约14436 KiB未压缩的XML文件。这两个都是使用SDK必需的。(重要更新:只有DLL文件是必需的,XML文件只是为程序员提供的API文档!!)
我已经使用SDK编写了一个工作正常且令我满意的程序。然而,我使用LZMA2压缩了OpenXML SDK数据(DLL和XML),结果只有1287 KiB。节省了18260 KiB,可以节省至少几秒钟,最多数分钟,在平均WAN链路上传输。
我从7-zip.org下载了LZMA SDK,它在约45 KiB的编译MSIL中实现了LZMA压缩和解压缩。
我的目标是使用类似于7-Zip的东西压缩资源,将它们存储在构建的程序集(.exe)中,然后解压缩并加载它们。我知道如何使用7-Zip SDK进行解压缩。因此,我有两个问题:
我已经使用SDK编写了一个工作正常且令我满意的程序。然而,我使用LZMA2压缩了OpenXML SDK数据(DLL和XML),结果只有1287 KiB。节省了18260 KiB,可以节省至少几秒钟,最多数分钟,在平均WAN链路上传输。
我从7-zip.org下载了LZMA SDK,它在约45 KiB的编译MSIL中实现了LZMA压缩和解压缩。
我的目标是使用类似于7-Zip的东西压缩资源,将它们存储在构建的程序集(.exe)中,然后解压缩并加载它们。我知道如何使用7-Zip SDK进行解压缩。因此,我有两个问题:
如何将OpenXML SDK程序集(.dll)加载到正在运行的.NET进程中,而无需将其写入磁盘?假设我有一个未压缩字节的byte[],我会自己处理资源打包到可执行文件中。
如何告诉程序集从内存加载OpenXML模式(DocumentFormat.OpenXml.xml),而不必将其写入磁盘?假设我有一个包含未压缩XML的byte[]或字符串。同样,我会自己处理解压缩和资源打包。