Я разрабатываю пользовательский аддон для Microsoft PowerPoint. Мой addin должен хранить большое количество двоичных данных в презентации PowerPoint. Я храню эти двоичные данные в виде строк с кодировкой base 64 в тегах представления PowerPoint. Я обнаружил, что когда презентация содержит огромное количество данных в своих тегах (например, 10+ мегабайт), PowerPoint, похоже, пропускает память при сохранении презентации. Поэтому, когда такая презентация сохраняется несколько раз, PowerPoint даже у меня заканчивается системная память и сбой.Утечка памяти PowerPoint 2010?
Я разработал очень простой C# addin, чтобы изолировать проблему. Он хранит 50 мегабайт двоичных данных в презентации, когда создается новая презентация:
private void Application_AfterNewPresentation(PowerPoint.Presentation presentation)
{
int tagLength = 5 * 1000 * 1000;
StringBuilder largeTagValue = new StringBuilder();
largeTagValue.Capacity = tagLength + 2;
for (int i = 0; i < tagLength; i++)
{
largeTagValue.Append("A");
}
largeTagValue.Append("\0");
string largeTagValueString = largeTagValue.ToString();
for (int i = 0; i < 10; i++)
{
presentation.Tags.Add("LARGE_TAG" + i.ToString(), largeTagValueString);
}
}
После запуска этого надстройку, я могу даже отключить его, чтобы убедиться, что он больше ничего не делает. Затем я несколько раз сохраняю презентацию и вижу, что использование памяти PowerPoint в списке процессов растет каждый раз, когда я сохраняю презентацию.
Полная исходный код и образец презентация доступна here
Кто-нибудь знает, если это PowerPoint ошибка или есть обходной путь для этого? ...
Или, может быть, есть еще один способ хранить относительно большой объем данных в презентации PowerPoint?
Я бы предположить, что это ошибка; конечно, это не * разработан * для утечки памяти, сбоя и сжигания. У меня нет информации, но я уверен, что где-то я объяснил, как можно включить любой произвольный файл в файл PowerPoint, предполагая, что вы используете один из форматов XML (PPTX, PPTM, PPSX и т. Д.). –
Стив, у вас есть идеи, как хранить двоичный файл в PPTX без использования тегов PowerPoint? –