The approach suggested by Blair makes the most sense, if the files are
in the package already just install *all* files and update a registry
setting to indicate the desired MUI... alternatively automatically
load based desired MUI based on the current locale.


On Tue, Jun 1, 2010 at 6:11 AM, Blair <os...@live.com> wrote:
> Would it be problematic to simply always install all the languages and simply 
> let the runtime pick the appropriate one each time it runs (based on the 
> user's language setting, perhaps)?
>
> Alternately, you would need to check the installed features of the previous 
> product (either in your bootstrapper or in your MSI) and add all already 
> installed features to the ones you selected.
>
> -----Original Message-----
> From: Ondrej Zarevucky [mailto:ondrej.zarevu...@fine.cz]
> Sent: Monday, May 31, 2010 2:24 AM
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] How to update shared MUI libraries in a consistent 
> state?
>
> 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
>
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> 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