cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
hks7mgt
Level 3

Using Large Files in InstallShield

i'm building a msi installer for a mapping applicaiton that contains a lot of map files, but one particular file is 2944Mb in size and when its imported into a component, it lists its file size as a negative number (-1279985396 bytes). The only method of successfully building the package is to leave the files uncommpressed alongside the msi installer file.

The issue is when installing the msi installer on Windows 7 desktops, i'm presented with when it attempts to copy this large file;
Error 1310. Error writing to the file: C:\Program Files\[ProgramName]\[DestinationFolder]\[File.xxx]. Verify that you have access to that directory.

I was initially installing the msi installer via SCCM and was able to reproduce the issue running with a local admin account in windows 7. Windows XP does not experience the issue.

There are articles online that ask you to go into MSCONFIG and disable services on startup, but nothing helped me. I then upgraded from InstallShield 2011 to 2012 (was meant to do it anyway) and the issue is still there.

anyone have any experience in dealing with large files in InstallSheild and installing successfully on Windows 7?
Labels (1)
0 Kudos
(2) Replies
hks7mgt
Level 3

i have been working on this for a while now and have discovered the only way i could build a release was to have the files uncompressed. But even still, windows 7 will not install it - gives you the above 1310 error.

I think it has something to do with the native version of msiexec engine (version 5) on win7 because windows XP did not produce the problem.

any ideas?
0 Kudos
RichardW
Level 3

Try copying the file yourself via a custom action. Here's an example:

1. Delete the large file from "Files and Folders" view.
2. Add the large file to "Support Files | Advanced Files | Disk1"
3. Create a custom action "New VB Script | Stored in Binary File". Name it "InstallBigFile" or something like that. I used this code to copy the file:

szInstallDir = Session.Property("INSTALLDIR")
szSetupExeDir = Session.Property("SETUPEXEDIR") + "\File.xxx"
set filesys=CreateObject("Scripting.FileSystemObject")
If filesys.FileExists(szSetupExeDir) Then
filesys.CopyFile szSetupExeDir , szInstallDir
End If

4. Sequence the custom action to suite your needs. I used "After InstallInitialize" for my test.
5. Condition it to you needs. I used the Install Exec Condition: NOT Installed AND NOT PATCH
6. Create a custom action "New VB Script | Stored in Binary File". Name it "DeleteBigFile" or something like that. I used this code to delete the file:

szInstallDir = Session.Property("INSTALLDIR") + "\File.xxx"
Set filesys = CreateObject("Scripting.FileSystemObject")
If filesys.FileExists(szInstallDir) Then
filesys.DeleteFile szInstallDir
End If

7. Sequence the custom action to suite your needs. I used "After InstallBigFile" for my test.
8. Condition it to you needs. I used the Install Exec Condition: REMOVE="ALL"
9. Build and run. File is installed without error.
10. Uninstall. File is uninstalled without error.
0 Kudos