Friday, September 03, 2004

WiseDll.dll "Extracting directories..." localization

A Google-bait header for a problem that took me far too long to chase down, and which had no clear data to be found on the web — not even on wise.com's knowledge base.

Scenario — an installer created using Wise for Windows Installer 5.0 — last year's model, I know — with the resulting .msi file being post-processed to extract all the strings from the database, localized, patched and then used to create a transform. All the other strings were being processed; the Template summary and all merge modules were set language neutral (codepage zero); and still, as soon as the installation started, up popped English language strings “Extracting directories…” and “Extracting properties…”.

There was no sign of them in any of the string tables. Flattening the .wsi file to xml failed to show anything. Looking in the actual binary, however, they were there.

Much dissection later, I found that they were present in one of the Binary table entries, which, extracted, turned out to be a .DLL, 21kb, associated with custom calls for startup and cleanup. So not something that could be excised safely. And the strings turn out not to be located as resources, but as hard-coded data.

This really makes all the localization support in the rest of WfWI moot.

So I just patched the .DLL I'd extracted — set the 'E' bytes to NUL in a hex editor — and re-inserted it into the .wsi file using Orca. Problem papered over, if not solved.

Post a Comment