This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: 64 bit Program File copy
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jan 29, 2009
11:12 AM
64 bit Program File copy
I'm trying to perform what I believe should be a simple task. I need to copy a file to the c:\Program Files\CoCreate\CoCreate Modeling 2008\dxfdwg folder on a 64 bit workstation. It needs to work on both 32 and 64 bit XP.
It works fine on the 32 bit but when it comes to the 64 bit, it changes the path to Program Files (x86) so it creates a whole new invalid folder. I perform a System Search for the file and it finds it ok. However, during the running of the msi, the property gets changed from Program Files to Program Files (x86).
Is there a way I can stop this from happening. It even changes the hard coded path in the Component Destination when I tried that.
MSI (s) (10:B8) [10:54:03:756]: PROPERTY CHANGE: Modifying MODELING property. Its current value is 'C:\Program Files\CoCreate\CoCreate Modeling 2008\dxfdwg\'. Its new value: 'C:\Program Files (x86)\CoCreate\CoCreate Modeling 2008\dxfdwg\'.
It works fine on the 32 bit but when it comes to the 64 bit, it changes the path to Program Files (x86) so it creates a whole new invalid folder. I perform a System Search for the file and it finds it ok. However, during the running of the msi, the property gets changed from Program Files to Program Files (x86).
Is there a way I can stop this from happening. It even changes the hard coded path in the Component Destination when I tried that.
MSI (s) (10:B8) [10:54:03:756]: PROPERTY CHANGE: Modifying MODELING property. Its current value is 'C:\Program Files\CoCreate\CoCreate Modeling 2008\dxfdwg\'. Its new value: 'C:\Program Files (x86)\CoCreate\CoCreate Modeling 2008\dxfdwg\'.
(5) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jan 29, 2009
11:48 AM
Is this file you're trying to copy a true 64-bit executable? If not, then Program Files (x86) is the correct place for it to be on a 64-bit Operating System. Similarly you may find some registry entries have mysteriously appeared under Wow6432Node - this is all perfectly normal and should work fine if your application is "32-bit running under 64-bit"
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jan 29, 2009
12:02 PM
Can you try set Destination path for one component as [ProgramFiles64Folder] and add a condition VersionNT64 >= 500 on one component and on another component as [ProgramFilesFolder] with condition VersioNT >= 500
Or if you are copying file via script, can you try writing a code something like this
Or if you are copying file via script, can you try writing a code something like this
nSize=128;
MsiGetProperty(hMSI,"VersionNT64",szOS,nSize);
if(StrLength(szOS) > 0) then
ProgramFiles64Folder ^ "your path";
else
ProgramFilesFolder ^ "your path";
endif;
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jan 29, 2009
02:33 PM
Thanks for the suggestions. It's basically a configuration file I want to copy so it's not a 64 bit file. I believe the issue has something to do with the fact that I created the package on a 32 bit workstation and have to update a 32 bit app and a 64 bit app on the 64 bit workstation. I hope that's not the case though.
I just tried adding the component destination of [ProgramFiles64Folder] with the condition of VersionNT64 >= 500 and it still gets changed to Program Files (x86).
MSI (s) (10:EC) [14:13:46:247]: PROPERTY CHANGE: Modifying ProgramFiles64Folder property. Its current value is 'C:\Program Files\'. Its new value: 'C:\Program Files (x86)\'.
I may end up writing a vbs to take care of this but I assumed InstallShield 9 would be able to do it.
Thanks
I just tried adding the component destination of [ProgramFiles64Folder] with the condition of VersionNT64 >= 500 and it still gets changed to Program Files (x86).
MSI (s) (10:EC) [14:13:46:247]: PROPERTY CHANGE: Modifying ProgramFiles64Folder property. Its current value is 'C:\Program Files\'. Its new value: 'C:\Program Files (x86)\'.
I may end up writing a vbs to take care of this but I assumed InstallShield 9 would be able to do it.
Thanks
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jan 30, 2009
10:18 AM
Windows Installer makes ProgramFilesFolder and ProgramFiles64Folder refer to the x86 folder on 64-bit machines unless the MSI is marked as a 64-bit package. Unfortunately, if it's marked as a 64-bit package, it cannot be installed on 32-bit systems. So in short, you'll need to either make multiple packages (see Heath Stewart's blog on this), or do this outside the built-in functionality of Windows Installer.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jan 30, 2009
04:12 PM
Hi Mike, thanks for the info. That's exactly what I was trying to avoid. I will write a vb script to get it done because it would be easier to have one msi to deploy to both OS'. I'll let you know how that goes 🙂 Thanks goodness for vb sample scripts posted all over the internet!
![](/skins/images/8C9D13A71C7F7695F3262372C0172D68/responsive_peak/images/icon_anonymous_message.png)