6 Replies Latest reply on Oct 28, 2010 1:12 PM by flexstone

    Install Process Unstable for Large DMS AIR app

    flexstone Level 1

      Our Air App is essentially a Document Management System with 30K files with a total storage space of 2.8GB. The standard installation process is not viable as it appears to become "not responding" though it is running but with no useful user feedback or indicator.


      Looks like our alternative is to create a custom installer that will manage and provide more details about the installation and its progress. This will be deployed to a Windows OS via an installer DVD.


      Anyone with recommendations about a good install app and experience with similar scenario are appreciated.

        • 1. Re: Install Process Unstable for Large DMS AIR app
          Frank Stokes-Guinan Adobe Employee

          The .air installation format is a compressed format that needs to be uncompressed and validated against a digital signature.  For large 2GB apps, this uncompression and validation can be time-consuming.  Once these steps are complete, however, the AIR runtime simply uses MSI to install the resulting uncompressed files on Windows.


          Your custom installer should be able to invoke the msi file that gets generated after the uncompression and validation step.  You can peak at the install logs to see where the uncompressed files are placed during installation.  (See http://kb2.adobe.com/cps/403/kb403150.html#main_How_can_I_create_a_log_file_of_the_AIR_ins tallation_.)


          Hope that helps,


          AIR Engineering

          • 2. Re: Install Process Unstable for Large DMS AIR app
            flexstone Level 1

            Thanks for explaining the install process however the lack of any progress feedback causes users to believe the installation process has "frozen" during this huge package install.


            My alternative plan is to create an installer for the basic app without the content files (30K documents) and use the custom installer to place the content files in the local store destination.


            I need much greater control over the install experience so the user knows what's happening and it is much more manageable.


            The standard AIR installation is woefully inadequate for this atypical app.

            • 3. Re: Install Process Unstable for Large DMS AIR app
              zeroskillz Level 3

              I think you answered your own question. The key is to install the app without the 2gb of files. That will give you a quick install with visual feedback, as is typical of air installs. Then use the app to check for first-run (in essence, check if one of the 30k files is in the local folder, if not, it's the first run), and if it is the first run, copy all those files. That way, you can create whatever interface you like for giving visual feedback on the copy process. I have done something very similar for an app that retrieves it's data over the network and stores it locally. Seperating the data files from the pp also allows me to have the app update the data files when new files are available.



              1 person found this helpful
              • 4. Re: Install Process Unstable for Large DMS AIR app
                flexstone Level 1

                Thanks Ted this is interesting and an alternative I had not considered. In a DVD distribution how would you suggest that one determine the location of the source files on the DVD from the installed app ?

                • 5. Re: Install Process Unstable for Large DMS AIR app
                  tzeng Adobe Employee

                  I think your AIR app. can search for your specific DVD volume. If it is not there, ask user to insert it.

                  1 person found this helpful
                  • 6. Re: Install Process Unstable for Large DMS AIR app
                    flexstone Level 1

                    Thanks - I did find a method to silently read from the installation DVD and identify the required directories which can then be copied to the appStorage....


                              var os:String = Capabilities.os.substr(0, 3).toLowerCase();
                             var currentDrives:Array = (os=="mac") ? new File('/Volumes/').getDirectoryListing() : File.getRootDirectories() ;
                             var fileList:Array;
                             var fileCount:int = 0;
                             var fileListArr:Array = new Array();
                             for each(var file:File in currentDrives){
                                 //trace ("Drive: " + file.name + " Size: " + file.size);
                                     trace ("Drive: " + file.name + " Size: " + file.size);
                                     fileList = (os=="mac") ? new File('/Volumes/'+file.name).getDirectoryListing() :  new File(file.name.getDirectoryListing()
                                     for(var l:int = 0 ; l<fileList.length; l++){