Software Deployment Question
InstallShield - 64bit Registry Component Being Written When a 32bit Entry is Required
Hi, any assistance or guidance as to a better way to do this, would be greatly received.
I want to create an MSI that creates a folder in c:\users\public and then installs files there. C:\users\public is not a predefined folder so I thought I would try to achieve this with the following.
1. Create a registry entry here: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\ that adds the path c:\users\public
2. Use the System Search utility within Install Shield to look up this folder and store the value in a public property (PUBLICFOL). I have ticked the option that says "search 64bit registry".
3. Create components which have the files I need installed and set the destination as this public property.
My Template Summary is set to Intel;1033 at present.
Component Config for file install :- 64-bit Component = No Disable Registry Reflection = No Destination = PUBLICFOL
Component Config for Registry :- 64-bit Component = No Disable Registry Reflection = No Destination = INSTALLDIR
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432NODE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders -
This resultant MSI installs the registry entry HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432NODE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders -not where I want it. Because of this, the files are not installed to c:\users\public as required. They are installed to a folder called PUBLICFOL at the root of c:\
If I manually create the registry entry I want then run the install, it all works as it should. This registry redirection issue is my problem.
If you have any suggestions to fix this or perhaps another way to install to the public directory (apart from creating a directory structure of folders through the directory table, I know I can do that, I wanted to try to leverage a different method), that would be great.
I have tried various different combinations of configurations over the last 2 days, but please fire me any further questions, if I haven't provided enough info. Thank you.
Community Chosen Answer
You are specifying the 64 bit path to the shell folder registry location but the component is not 64 bit. Either use a 64 bit component, or specify the 32 bit path (ie without the syswow64 bit)