Какой метод вы считаете "лучшим".
- Использовать пространство имен
System.IO.Packaging
? - Использовать взаимодействие с оболочкой?
- Сторонняя библиотека для .NET?
- Взаимодействие с неуправляемой DLL с открытым исходным кодом?
[Я могу настроить Target Framework 3.5; best = проще всего спроектировать, реализовать и поддерживать.]
Меня больше интересует, почему вы считаете, что выбранный подход лучше всего.