1) WAU doesnt modify or read the TOC as a rule, so another file has to be used.
2) The contents of zip files can change, and there could be user files on the local machine. This has been an ongoing issue, which finally has been resolved.
Ok, I wasn't thinking about the fact that files not in the current .zip may not be user files, but the old names of files.
If you carefully read the steps outlined in my algorithm, you will see that it covers the case of files being removed from a zip - it relies on being able to know the contents of the zip which was installed so that it can remove only those files. It optimizes that by only removing files which were in the old zip, but arent in the new one, since why delete files you are about to overwrite anyways
I found this to be rather compelling, a fully defined system to package content within zipfiles and maintain relationship information for it.
This Open Packaging specification describes an abstract model and physical format conventions for the use of
4 XML, Unicode, ZIP, and other openly available technologies and specifications to organize the content and
5 resources of a document within a package. It is intended to support the content types and organization for
6 various applications and is written for developers who are building systems that process package content.
7 In addition, this Open Packaging specification defines common services that can be included in a package, such
8 as Core Properties and Digital Signatures.
9 A primary goal is to ensure the interoperability of independently created software and hardware systems that
10 produce or consume package content and use common services. This Open Packaging specification defines the
11 formal requirements that producers and consumers shall satisfy in order to achieve interoperability.
12 Various XML-based building blocks within a package make use of the conventions described in Part 5: ?Markup
13 Compatibility and Extensibility? to facilitate future enhancement and extension of XML markup. That part shall
14 be explicitly cited by any markup specification that bases its versioning and extensibility strategy on Markup
15 Compatibility elements and attributes.