Microsoft OpenXML SDK версии 2.0 поставляется с ~ 5111 библиотекой KiB .NET (DLL) и ~ 14436 KiB несжатым XML-файлом.
Оба эти файла необходимы для успешного использования SDK.
(Важное обновление: требуется только файл DLL, а XML это просто API документация для программиста !!)Вставить файлы SDK OpenXML в .NET Исполняемый файл
Я написал программу, используя SDK, который работает и я доволен. Тем не менее, я сжал данные SDK OpenXML (DLL и XML) с использованием LZMA2, и результатом является только 1287 KiB. Экономия составляет 18260 KiB, что может занять не менее нескольких секунд, вплоть до нескольких минут, для передачи по средней линии WAN.
Я загрузил LZMA SDK от 7-zip.org, который реализует сжатие и декомпрессию LZMA примерно в 45 KiB скомпилированного MSIL (как скомпилировано .NET Framework 4.0).
Моя цель - сжать ресурсы (используя что-то вроде 7-Zip), сохранить их в сборке (.exe), а затем распаковать их и загрузить. Я знаю, как использовать 7-Zip SDK для декомпрессии. У меня есть две проблемы таким образом:
Как загрузить сборку OpenXML SDK (.dll) в запущенный процесс .NET без записи на диск? Предположим, у меня есть байт [] несжатых байтов DLL; Я сам позабочусь об упаковке ресурсов в исполняемый файл.
Как сообщить сборке загрузить схему OpenXML (DocumentFormat.OpenXml.xml) из памяти, не записывая ее на диск? Предположим, у меня есть байт [] или строка, содержащая несжатый XML. Опять же, я сам позабочусь о декомпрессии и упаковке ресурсов.
Эй, какой хороший код, если он не задокументирован, не так ли? : D –