Hi,
thank you for your reply, I'm sorry for my confusing question - I wanted 
to make it more simple, but doing so it lost its clarity.

My real problem is with our MUI-like solution... I hope other people 
solved similar problem with their localization system (MUI?) :-)

We have a shared library FXPrint.dll with its localization files:
- FXPrint.dll         -- handles Print Preview and Print Setup dialogs 
in our products
- FXPrint_EN.dll  - contains English localization
- FXPrint_CS.dll  - contains Czech localization
- FXPrint_ES.dll   - sontains Spanish localization

When user installs our first product in English, only FXPrint.dll and 
FXPrint_EN.dll get installed - both in version 1.4.

But then the user installs our another product in Czech, which now 
contains all four files in version 1.5. Because the product is in Czech, 
it updates FXPrint.dll and installs FXPrint_CS.dll.

The result is:
FXPrint.dll v1.5, refcount = 2
FXPrint_CS.dll v1.5, refcount = 1
FXPrint_EN.dll v1.4!!, refcount = 1    - not compatible with v1.5

All our products are installed using MSI with one language independent 
feature and many language dependent features:
Product_Core:
  - Product.exe
  - FXPrint.dll
Product_CS:
  - Product_CS.dll
  - FXPrint_CS.dll
Product_EN:
  - Product_EN.dll
  - FXPrint_EN.dll
...

When we run installation, we use our own bootstrapper application, which 
calls Windows Installer:
MsiInstallProduct("TRUSS4.msi", "ADDLOCAL=TRUSS4_Core,TRUSS4_CS");  -- 
does installation of Czech version and doesn't install any English libraries
MsiInstallProduct("GEO5.msi", "ADDLOCAL=GEO5_Core,GEO5_EN");   -- does 
installation of English version and doesn't install any Czech libraries

If the installations user is using were created at different time, the 
shared libraries versions doesn't match and the older product fails to 
work properly :(

Ho do you solve this MUI problem in your products? How do you install 
both localization libraries in the newest version available?

Few notes:
1) All our products contain localization files in each language - so 
both TRUSS4.msi and GEO5.msi can install CS and EN files in their version
2) We cannot anticipate all our future products or installations so 
product testing is not a feasible solution

My current best idea seems to be to create another "Shared.msi" package, 
which contains shared libraires and updates them in a consistent state 
(products would ask our bootstrapper to install the required ones). 
Sadly this solution is losing reference counting feature from Windows 
Installer and we would have to do our own reference counting :(

Thank you for your help
Ondrej Zarevucky

On 29.5.2010 0:28, Blair wrote:
> Unless you are using MSI 5.0 or higher, any/all files must be in the package 
> involved in the installation transaction. So, the general rule would be to 
> include SharedAdvanced.dll in both installations, but condition the component 
> containing it to only install if the second package is (or is being) 
> installed.
>
> -----Original Message-----
> From: Ondrej Zarevucky [mailto:ondrej.zarevu...@fine.cz]
> Sent: Friday, May 28, 2010 8:00 AM
> To: General discussion for Windows Installer XML toolset.
> Subject: [WiX-users] How to update shared libraries in a consistent state?
>
> Hi everybody,
> we've just encountered a problem with our WiX setup when using shared
> libraries. We have two installations:
> - first one is installing only one shared component "SharedBase.dll"
> - second one is installing two shared components "SharedBase.dll" and
> "SharedAdvanced.dll"
>
> The issue is, when user installs the second program first and then
> installs the first one in a newer version. The updated SharedBase.dll is
> expecting updated SharedAdvanced.dll, but it stayed in the old version.
>
> Is there a way we can update SharedAdvanced.dll library in the first
> installation if it was already installed in the previous installation?
> We don't want to install this advanced library, when there was no
> library present...
>
> The reverse operation is even worse: Installing newer product with newer
> SharedBase.dll and then installing older second product with older
> SharedAdvanced.dll - I don't know, how to solve this at all :(
>
> BTW: Both shared libraries are backwards compatible, but they need to be
> in similar versions for them to communicate.
>
> Thank for any ideas
> Ondřej Zarevúcky
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>    

------------------------------------------------------------------------------

_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to