PDA

View Full Version : 64bit suggestions


adrien
11-03-2009, 03:24 PM
Having had recently to update our installers to handle 64bit versions of the OSes, it would be great if SetupFactory could

a) list the 64-bit variants of OSes in the properties of a file (under Conditions:Operating systems) so we can say install this file for 64 bit but not 32 bit.

b) generate a 64bit installer exe (so that File System redirection and registry redirection don't come into play)

c) support launching an application with elevated privileges (not sure if this is possible, or whether the exe must just be manifested to require admin).

Cheers

Adrien

jassing
11-04-2009, 10:20 AM
Not meant as a "solution" but viable options. I don't think you're going to get these anytime soon -- just my gut feeling...

a) list the 64-bit variants of OSes in the properties of a file (under Conditions:Operating systems) so we can say install this file for 64 bit but not 32 bit.

You can easily set a runtime condition as to if it should install or not. Which is basically what the OS Checkboxes are -- but you'd just do it in code...

b) generate a 64bit installer exe (so that File System redirection and registry redirection don't come into play)

Since 32bit apps run on 64bit, I don't see this happening; but it might...

You can turn on/off the redirects for FILES easily with a simple API call.
Registry is a bit more complex -- I posted a registry64.lua (Registry64 object) to replace the built in registry object; it's almost a "drop in" replacement. It's slow if you do lots of registry I/O (ie: read the entire HKLM fork)

On my installers, all "64bit system" files go to a temp folder. From there, in post install, I disable re-direct, and then copy them to the _SystemFolder; then re-enable redirects.

A strategy, since you want "x64 binary installer" is to "on startup" just test "is this x64?" if not, alert & abort install. Now, just disable file-redirects for the duration of the installer.

You'll still have issues with the Registry -- but you can easily work around that too.

c) support launching an application with elevated privileges (not sure if this is possible, or whether the exe must just be manifested to require admin).

If the installer is properly elevated, then anything it launches should also be elevated. The best way to do this is with a manifest.

You can also use "RunAs" (either command line or File.RunAs())

-josh