Home > Blogs > VMware ThinApp Blog


Using VMware App Volumes with ThinApp Packages

By Dean Flaming, Sr. Technical Marketing Manager | Lighthouse & EUC Enablement, End-User Computing, VMware

With VMware’s acquisition of App Volumes (formerly known as CloudVolumes), customers now have another option for deploying VMware ThinApp packaged applications.  ThinApp packaged applications have always supported a variety of deployment options.  So when it comes to using ThinApp packages with VMware App Volumes, what might be the easiest and best way to combine the technologies?  And why would you want to do this?

As with all technical application-delivery questions, it depends upon your environment, your application, and your desired outcome.  Using VMware ThinApp to package applications is a robust solution when you have application conflicts or need application-to-OS isolation, or you need to support legacy applications such as IE6 on Windows 7.  When combined with the rapid application-delivery capabilities of App Volumes, these ThinApp features can provide powerful performance benefits (see Aaron Black’s January, 2014, blog post, ThinApp Packages Can Now Be Delivered In VMDKs!).

We have answered the “why,” now let us answer the “what” and “how.”

 

Technical Methods

For using existing ThinApp projects with VMware App Volumes, we have two different scenarios for you: ThinApp MSI and ThinReg command line.

 

ThinApp MSI

While there are various ways for registering ThinApp packages on a Windows system, the easiest option that ensures the best success for App Volumes AppStack provisioning is to reconfigure the ThinApp project’s PACKAGE.INI file to enable settings for creating a ThinApp MSI file of the package when you run the BUILD.BAT command from within the project directory.

When capturing a ThinApp application with Setup Capture, you can easily select the option to create an MSI. This option, though, is available to you only during the capture of a new ThinApp project.

Click for larger image

ThinApp MSI Option During Setup Capture

Making the necessary modifications to existing ThinApp projects is only slightly more involved. Here are the steps to modify an existing ThinApp project to make an MSI of the package:

  1. Browse to the ThinApp project folder for the existing ThinApp package.
  2. Open the ThinApp project’s PACKAGE.INI file with a text editor such as Notepad.
  3. Scroll down to the MSI Parameters subsection underneath the [BuildOptions] section.
  4. If there are semicolons in front of the MSI values within this section, then enable each of the MSI values within this section by removing the semicolon.
    Note: See the following PACKAGE.INI File Detailed Settings section to understand which settings are needed and which settings are desired.
  5. After you have enabled the appropriate MSI values within the PACKAGE.INI file, save the file.
  6. Now that you are finished updating the PACKAGE.INI file with the MSI parameters, run the ThinApp project’s BUILD.BAT command (located in the ThinApp project’s folder) on a system where VMware ThinApp is installed and licensed.
  7. Your ThinApp package is now successfully updated and rebuilt.  The MSI file (found in the BIN folder along with the package) can be executed like any other application installation on the App Volumes provisioning system during the creation of a new AppStack.

Note:  You need only the MSI file because, using the following settings, you have incorporated the entire ThinApp package within the MSI file.

PACKAGE.INI File Detailed Settings

Following are the details on parameters within the PACKAGE.INI MSI section so you can understand which settings must be modified and which are optional.

Items in RED are required when updating a ThinApp package to work with App Volumes.  Items in GREEN are optional and recommended, but not necessary.

[BuildOptions]
 ;-------- MSI Parameters ----------
 ;Enable MSIFilename if you want to generate a Windows Installer package.
 MSIFilename=OpenOffice 3.0.msi
 MSIManufacturer=VMware, Inc. - ThinApp
 MSIProductVersion=3.0
 MSIDefaultInstallAllUsers=1
 MSIRequireElevatedPrivileges=1
 MSIInstallDirectory=OpenOffice 3.0 (VMware, Inc. - ThinApp)
 ;MSIProductCode={3FA2232F-5A4C-EE58-B10F-99CA0434311A}
 MSIUpgradeCode={28BE6867-BAE5-53A1-7D3B-F893E8EED66E}
 MSIStreaming=0
 MSIArpProductIcon=%ProgramFilesDir%\Java\jre1.6.0_07\\bin\javaws.exe
 MSIIs64Bit=0

 

Specific Settings

  • MSIFilename – A custom value is required for ThinApp to know what to name the MSI.
  • MSIManufacturer – A custom value for this is optional. Windows will show this info in the Control Panel. Subsequently, if this value is set, App Volumes will record and show this information within the Management Console.
  • MSIProductVersion – A custom value for this is optional.  Windows will show this info in the Control Panel. Subsequently, if you set this value, App Volumes will record and show this information within the Management Console.
  • MSIDefaultInstallAllUsers=1 – This specific value is required for the ThinApp MSI to install and register the package for all users of the system—a requirement for applications being provisioned with App Volumes.
  • MSIRequireElevatedPrivileges=1 – This specific value is required for the ThinApp MSI to install and register the package for all users of the system—a requirement for applications being provisioned with App Volumes.
  • MSIInstallDirectory – A custom value for this setting is required for ThinApp to know where to install the ThinApp packaged application on the designated system—in this case, the App Volumes provisioning system.
  • MSIStreaming=0 – This specific value is required for ThinApp to embed the ThinApp packaged application within the MSI. Setting this value ensures that the ThinApp package is deployed from the ThinApp package MSI into the folder location defined in the MSIInstallDirectory value on the designated system—in this case, the App Volumes provisioning system.
  • MSIArpProductIcon – This is the icon that appears within the Windows Add/Remove Programs or Uninstall Programs within the Control Panel.  The setting is not required, but it will show in the Windows Control Panel if you set it.  Because App Volumes provisioning utilizes the icon from the Control Panel, this is also the icon that is utilized for display in the App Volumes Manager.

Note:  MSIStreaming is a replacement for the old MSIUseCabs parameter.  When using this older parameter, MSIUseCabs=1 is the same as MSIStreaming=0.

As you can see, converting a ThinApp project to generate an MSI of the ThinApp package is a straightforward process if you have a small number of ThinApp packages.  However, the process can become cumbersome with a large number of packages because you must rebuild each ThinApp project after you edit the PACKAGE.INI file.

Therefore, if you have a large number of ThinApp packages and just want to copy them in and go, then you will want to read through the next section on the ThinReg command line method.

 

THINREG Command Line

A preferred way to register multiple ThinApp packages to a Windows system is to use the THINREG.EXE command line and its various optional switches. For VMware App Volumes AppStack provisioning, this process entails some manual steps, such as creating a folder for your ThinApp packages, copying both the THINREG.EXE tool and the ThinApp packages (including all of the EXEs and the DAT files, if they exist) into their respective locations on the Windows system, and then registering the ThinApp packages to the entire system.

 

ThinReg Review

Click for larger image

THINREG.EXE Command Line Options

A quick review of THINREG.EXE command line options can be obtained simply by executing THINREG.EXE.

As you see, the default registration is only per user within the Windows operating system. For App Volumes to properly provision a ThinApp package, you must install to the entire system—not for only the user.  Therefore, you must use the /a or /allusers switch in the command line.

 

High-Level Procedure for Using THINREG.EXE

Following are the simple steps for using THINREG.EXE to mass-register ThinApp packages to a computer to achieve the end-result of allowing use of all ThinApp packages on the system by all users of the computer.

Note: Click the images for higher resolution versions.

  1. Gather up your ThinApp packages. You need only the EXEs and DAT files for each package. It is recommended that you place the entire contents of each ThinApp package in a separate subfolder (no need to include the MSI—we are doing this registration by hand!).
  2. If THINREG.EXE is not available via a network share, copy it to the Windows system for use. In this case, you copy it to the App Volumes provisioning system.
    Note:  I like to copy it to the Windows folder because this makes it available without typing the path.
  3. Start the AppStack creation process in the App Volumes Manager console and select the provisioning system to use.
  4. After the App Volumes agent presents the Provisioning Mode prompt, you are ready to “install” your ThinApp packages.

    Click for larger image

    App Volumes Provisioning “In Progress” Dialog Pop-Up

  5. Create a ThinApp repository folder on your provisioning system C: drive.  It is recommended to create the folder on the root of your C: drive, but you can place it within the Program Files or Program Files (x86) folder if absolutely necessary.  What you decide to call the folder is entirely up to you.  We suggest something unique, though.

    Click for larger image

    ThinApp Repository Folder

  6. At the command line, run THINREG.EXE with the appropriate switches to register all of your ThinApp packages to the entire system (not just to the current user).  For this example, we used the following command:
    THINREG.EXE *.EXE “C:\ThinApp Repository\*\*” /A

Note: We are registering only the *.exe entry points in the ThinApp Repository folder and two subfolder levels deep (using the wildcards at the end of the path). And, finally, we are registering all of the ThinApp packages within that path to all users of the system by use of the /A switch.

 

 

Note: You may need to use an administrative-level command line depending upon your system’s configurations.

Click for larger image

Provisioning System Prior to THINREG.EXE Command

 
 

  • The result from the THINREG.EXE command should be immediately apparent.

  • Click for larger image

    Provisioning System After THINREG.EXE Command

    7. After you have tested your ThinApp packages, click the OK button in the App Volumes dialog box and continue with closing out the AppStack.

    Click for larger image

    App Volumes Provisioning “In Progress” Dialog Pop-Up

    After the App Volumes provisioning system reboots and you log in and click OK one final time, you are now ready to assign the AppStack to test.

     

    Conclusion

    You now have your ThinApp repository provisioned as a VMware App Volumes AppStack. This will allow you to benefit from the enhanced performance of locally delivered ThinApp packaged applications while still supporting application isolation for conflicting and legacy applications. This strategy also greatly enhances your ability to dynamically deliver applications to end users while allowing you to decrease your overall administrative overhead.

     

    Resources

     

    This entry was posted in App Volumes, MSI, Package.ini, Tips and tagged , , , on by .
    Dean Flaming

    About Dean Flaming

    Dean is currently an EUC Architect and member of the VMware End User Computing Enablement and Lighthouse Support teams, working to develop communications and IP around VMware End User Computing products and solutions as well as support many various Lighthouse accounts with their own EUC practices. Prior to this, from 2008 through 2012 Dean was one of VMware's End User Computing Specialists. Throughout his time at VMware, Dean has also written and published various articles, videos, and podcasts regarding VMware's EUC Solutions.