[REVIEW-3-5] fdo#44628 unopkg.exe does not find VC runtime during install

Andras Timar timar74 at gmail.com
Sun May 6 03:58:39 PDT 2012


Hi,

On Windows Vista and later, the VC 9.0 runtime files are installed to the
WinSxS cache as global assemblies. In Windows Installer, it is not possible to
use global assemblies until the installation transaction has been commited.
This means that only commit custom actions or custom actions sequenced to run
after InstallFinalize will be able to use global assemblies that are being
installed as part of the same MSI.

Possible workarounds:
1) Run RegisterExtensions custom action after InstallFinalize
2) Link VC runtime statically to unopkg.exe and unopkg.bin
3) Install private copy of msvcr90.dll next to unopkg.exe.

I chose option 1.

http://cgit.freedesktop.org/libreoffice/core/commit/?id=b3d63df541ff6b2bf9c77699c8c076ebcde2d6cf

The patch works well on Jesus' Windows 2008 Server VM, that he sent me
on Friday. I could not reproduce the bug with my VMs, because the bug
does not occur on Windows XP, and VMWare installs VC 9.0 runtime with
its VMWare Tools. When I realized this, I wanted to manually remove VC
9.0 runtime files form WinSxS, but then came Jesus' VM, I reproduced
the bug, and found the fix. Thanks, Jesus.

Best regards,
Andras


More information about the LibreOffice mailing list