Steve Kersley | 5 Dec 2011 18:29
Picon
Picon
Favicon

MSIs, install paths and different architectures

This is probably more of a 'share the frustration' post than anything specifically wpkg-related, but very
keen to hear if anyone has a workaround?

I have an application (Samsung MagicInfo Premium Authoring tool - the user tools for our digital signage
system) that needs to be installed in the same folder on each machine as the data files that it creates
contain hardcoded paths to content files stored in the local install directories.  If you open these files
on a different architecture to the machine that created them, the files aren't in the same place ("Program
Files" vs "Program Files (x86)") so won't open correctly.

Most of our PCs are currently running x86, but a couple of us (myself included, and I'm the one who creates the
initial content template and then hands off to other people to maintain and edit) are running x64 and the
intention is that in future staff PCs will be replaced/migrated from XP to Windows 7 x64.

I have extracted the MSI from the InstallShield installation source, and it does support the INSTALLDIR
property via the msiexec command line.  However, Windows is being too clever.  It will let me install to
c:\foo, but if I tell it to install to c:\Program Files\foo, it silently modifies that so that it installs
to c:\Program Files (x86)\foo instead.

Is there any way to forcibly install a 32-bit app into c:\Program Files on an x64 machine?

Is the only option going to be the slightly messy approach to install to a new directory in the root of c:?  That
will mean having to modify the existing data files that have already been authored, but will only have to be
done once, before we create too many more.

I have also considered creating a symlink or junction within \Program Files to point to the subdirectory in
\Program Files (x86) - that works in that it would allow a data file created on an x86 machine to be opened on
an x64 machine but still won't work the other way round unless I create an unnecessary "Program Files
(x86)" directory tree on all of the x86 machines too.

Has anyone dealt with a similar problem?  I think the fault is largely with the application, but really it
(Continue reading)

Stefan Pendl | 5 Dec 2011 20:36
Picon

Re: MSIs, install paths and different architectures

Am 05.12.2011 18:29, schrieb Steve Kersley:
> This is probably more of a 'share the frustration' post than anything specifically wpkg-related, but
very keen to hear if anyone has a workaround?
>
> I have an application (Samsung MagicInfo Premium Authoring tool - the user tools for our digital signage
system) that needs to be installed in the same folder on each machine as the data files that it creates
contain hardcoded paths to content files stored in the local install directories.  If you open these files
on a different architecture to the machine that created them, the files aren't in the same place ("Program
Files" vs "Program Files (x86)") so won't open correctly.
>
> Most of our PCs are currently running x86, but a couple of us (myself included, and I'm the one who creates
the initial content template and then hands off to other people to maintain and edit) are running x64 and
the intention is that in future staff PCs will be replaced/migrated from XP to Windows 7 x64.
>
> I have extracted the MSI from the InstallShield installation source, and it does support the INSTALLDIR
property via the msiexec command line.  However, Windows is being too clever.  It will let me install to
c:\foo, but if I tell it to install to c:\Program Files\foo, it silently modifies that so that it installs
to c:\Program Files (x86)\foo instead.
>
> Is there any way to forcibly install a 32-bit app into c:\Program Files on an x64 machine?
>
> Is the only option going to be the slightly messy approach to install to a new directory in the root of c:? 
That will mean having to modify the existing data files that have already been authored, but will only have
to be done once, before we create too many more.
>
> I have also considered creating a symlink or junction within \Program Files to point to the subdirectory
in \Program Files (x86) - that works in that it would allow a data file created on an x86 machine to be opened
on an x64 machine but still won't work the other way round unless I create an unnecessary "Program Files
(x86)" directory tree on all of the x86 machines too.
>
(Continue reading)

heiko.helmle | 6 Dec 2011 08:32

Re: MSIs, install paths and different architectures

Hello,

> Is the only option going to be the slightly messy approach to
> install to a new directory in the root of c:?  That will mean having
> to modify the existing data files that have already been authored,
> but will only have to be done once, before we create too many more.

I'm afraid yes. This way you'll not only avoid the 64bit-mess, but the language-mess too. At least on XP, %PROGRAMFILES% is different for every supported locale of XP. Vista and later kinda solved this by going a way similar to OSX (using localized paths in the gui but english underneath). If you want to stay compatible, c: is the easiest solution.

You could also go check the installer variables - maybe the installer exports a property for putting only the relevant datafiles somewhere else.

Or (finally) for your projects you could try SUBSTing the data to a drive letter - that way your SUBST-Script (that you should put in a login script or maybe a start script) is configurable, but the data is always at the same place. We do this for a few ancient software packages.

Best Regards
        Heiko
-------------------------------------------------------------------------
wpkg-users mailing list archives >> http://lists.wpkg.org/pipermail/wpkg-users/
_______________________________________________
wpkg-users mailing list
wpkg-users <at> lists.wpkg.org
http://lists.wpkg.org/mailman/listinfo/wpkg-users

Gmane