Capturing applications with more than 65535 files
I've been experiencing problems capturing packages that have a large number of files with Wise Package Studio 8.0 running on XP 32 bit and Win7 64 bit.
The problems start during setup capture where the "Setup Inclusions" wizard takes a very long time to populate its file list; this can be skipped by clicking next or selecting other options from the capture drop down menu. Once setup inclusions has finished, the files start copying and towards the end I get a "Unable to copy files to destination media" message box. Once I get past the message box, I get the Windows Installer Editor, but the WiseSourcePath table is incorrect and needs to be corrected via Tools->"Convert Source Paths". I am then able to build functional MSIs with the media compression option "Uncompressed external files". If I try to create MSIs with multiple external CABs, I can create an MSI but the installation always appears to fail with a "file not found" on the 65535th file (and this is in the last cab file). I've been able to reliably reproduce all these problems with a test script that creates 100,000 txt files (in 100 folders).
I am able to convert the functioning MSI (with external files) into a WiX source file then recompile with cabs and get a functioning installer all cabbed up, but was wondering if there was anything I could do in Wise to get the MSIs out cabbed?
Many Thanks,
--
Steven Capper
Comments
Including files manually
Just after source installation you can remove folders which have considerable number of files (let say 60-70 % of total files) and start post-capture. Make sure these folders doesn't have dll/ocx files, else registration information of file will not be mapped correctly.
These files/folders can be added directly later in your MSI.
Have you checked your schema?
The tables in an MSI template conform to a schema which sets limits on things like maximum string lengths in each string column, and also maximum integer values in "numeric" columns.
So you should check your schema to ensure that columns like the sequence column in the file table are not using DWORD values but are using QWORD, as DWORD limits the maximum entry to 65K.
What minimum Windows Installer version have you set in your Summary Information? Older schemas had significant limits on the maximum number of components and features that the MSI could hold.
However, do you actually have an application with more than 65K files or is this something you have just played around with in testing? For any application with this number of files, you are going to need to think about how to structure your files into components, as I suspect that having one file per component will result in extremely slow start up times for the application, as checking 65K key paths will inevitably take a long time.
If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.
Many thanks for your
Many thanks for your replies,
I did try adding files manually, but I experienced the same problem at the end (i.e. not all files being installed in CABs).
I've double checked the schema (http://msdn.microsoft.com/en-us/library/aa367767(VS.85).aspx), but the pertinent columns are already i4, and the _validation table specifies 2147483647 as the maximum file sequence number. Also when I generate an MSI with external files rather than CABs in Wise, everything works well (passes ICEs without errors and installs/uninstalls well). When I create external CABs with Wise, it cabs up 65535 files (spread across multiple CABs) then stops. I know CAB files have a limit of 65535 files per cab, and I think that Wise may be counting 65535 files globally and stopping rather than 65535 files per CAB.
Unfortunately this is for repackaging large applications, the test script was written to isolate the problem. Thanks for the heads-up on advertising. In the application I'm working on currently, there are significantly fewer components than files (most of the files are data files for the application), the shortcuts are non-advertised and the registry info is preserved (not converted to advertised form). Startup time on the application installed via the MSI (WiX or Wise with external files) is great and the application behaves itself when running. (Self-repair is not desired as the application is installed to read-only areas of the disk and we also run Deep Freeze on the cluster).
Thanks again,
--
Steven
Zipping?
Is there any merit in zipping up blocks of files into self installing EXE files? This will reduce the file count needing to be cabbed up and also provide better compression than the native cab format. It may also help reduce the disk footprint required to complete the install, as there will be less content to initially uncompress into the temp folder prior to the installation phase.
If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.
Not recommended but if no option left
If no option left, probably you can opt for creating and executable using WiseScript Editor which installs a good chunk of files and calling the same form MSI using "Execute program from Installation" option with appropriate condition.
re: archiving
Thanks guys,
I will need all the files in the file table as this allows for (easy) clean removal and patching; we sometimes get random requests along the lines of "please change this file on all the machines", then an "oops, could you please change that back then modify this one instead"; and the Wise patch wizard handles all this very well and really saves us time.
The other avenue I thought about exploring was to split the package up into multiple MSIs but this is non-trivial to do at the capture stage; and we then have to subsequently chain them together for installation and removal.
At the moment I have a fully functional MSI with cabs (but derived using WiX as an extra step). Is there any way to get a bug report to the Wise Package Studio developers regarding the 65535 file limit (in capture and cabbing), as this would increase the scope of what we're able to readily repackage?
Many Thanks,
--
Steven
Wise PM
I believe there is a bug reporting link on the Symantec website, but if you wish to target the Wise product manager directly, then email mike_grueber@symantec.com (It might be michael_grueber@symantec.com, but I believe either one works)
If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.
*Is* there such a limit?
I'm pretty sure I've captured stuff with W A Y more files than that. BEA Weblogic was one, I think. Admittedly, I'm not yet using 8 and Wise/Altiris isn't exactly known for managing working code that well (in terms of adding 'x' and making 'y' break along the way).
Don't know why 'x' happened? Want to know why 'y' happened? Use ProcMon and it will tell you.
Think about using http://www.google.com before posting.
Multiple cabs
You can specify cab size limit and then generate multiple cabs
See first posting
Quote: "If I try to create MSIs with multiple external CABs, I can create an MSI but the installation always appears to fail with a "file not found" on the 65535th file"
If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.
Would you like to reply?
Login or Register to post your comment.