http://bugzilla.wpkg.org/show_bug.cgi?id=93 --- Comment #1 from Rainer Meier <skybeam at users.sourceforge.net> 2007-12-15 03:06:31 --- Created an attachment (id=85) --> (http://bugzilla.wpkg.org/attachment.cgi?id=85) 64-bit enhanced version including 64-bit launch-wrapper, patch Here are the changes (patch-file) only. Change description: Change notes ============ WPKG Version: 1.0-RC5 Author: : Rainer Meier <skybeam (at) users.sourceforge.net> Date : 2007-12-15 Changes/fixes visible to the user: Summary: - Added 64-bit OS support NEW: Support for 64-bit operating systems added. Tested on Windows Vista x64. WPKG will now be able to read the uninstall keys of 32- and 64-bit applications when run from 64-bit cscript.exe. NOTE: Unfortunately WPKG-client is purely 32-bit so it will run 32-bit cscript.exe. As a result there is no way to read the 64-bit native registry keys as well as accessing the 64-bit "Program Files" folder. To work around this I wrote a small wrapper script which invokes the 64-bit cmd shell. Unfortunately the 64-bit binaries within %SystemRoot%\system32 (yes, really, Microsoft put the 64-bit binaries there!) are not accessible by 32-bit programs. So you need to copy it to another location. See instructions below (copied fromthe header of wrapper.js): Script which allows to execute WPKG within 64-bit environment (using 64-bit cscript.exe) on 64-bit operating systems like Windows XP x64 or Windows Vista x64. How to install: - Put wrapper.js into the same directory where you run wpkg.js from e.g. \\server\RemInst\wpkg\wrapper.js - Put your 64-bit cmd.exe from %SystemRoot%\system32\cmd.exe to the 64-bit sub-folder: e.g. \\server\RemInst\wpkg\64-bit\cmd.exe NOTE: Make sure you really copy the 64-bit cmd.exe. Do not copy cmd.exe from %SystemRoot%\SysWOW64\cmd.exe since this is the 32-bit binary. Quite strange but Microsoft put all 64-bit binaries to system32 while all 32-bit binaries are located at SysWOW64. (WOW64 = Windows on Windows-64) - Configure WPKG-Client to run the wrapper instead while keeping all parameters. Directory structure: \\server\RemInst\wpkg |- [XML files] |- wpkg.js |- wrapper.js |- 64-bit |- cmd.exe WPKG Client configuration: WPKG file path (required): \\server\RemInst\wpkg\wrapper.js WPKG parameters: /synchronize IMPORTANT, IMPORTANT, IMPORTANT, IMPORTANT, IMPORTANT, IMPORTANT ================================================================ File checks: If you use file checks within your 32-bit packages you have to check for %ProgramFiles(x86)%\file\path... as well since %ProgramFiles% will point to the install location of native 64-bit binaries and 32-bit binaries cannot be found there. To create a package which supports both (32/64-bit) systems I recommend using a logical "or" check. For example: <check type='logical' condition='or'> <check type='file' condition='versiongreaterorequal' path='%ProgramFiles(x86)%\Skype\Phone\Skype.exe' value='3.6.0.216' /> <check type='file' condition='versiongreaterorequal' path='%ProgramFiles%\Skype\Phone\Skype.exe' value='3.6.0.216' /> </check> Registry checks: Registry values of 32-bit applications are redirected to "HKLM\Software\Wow6432Node\*". WPKG will try to look up each value directly at "HKLM\Software\*" first and in case it cannot find it it will look for the corresponding key within "Wow6432Node". Therefore you might check for "HKLM\Software\TortoiseSVN\AddedIcon" which will look up the 64-bit version on 64-bit Windows and the 32-bit version on 32-bit Windows. In case you installed only 32-bit TortoiseSVN on 64-bit Windows it will try to find the 64-bit key and if it fails read the one at "HKLM\Software\Wow6432Node\TortoiseSVN\AddedIcon". -- Configure bugmail: http://bugzilla.wpkg.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. |