Migrate applications without install routines

Aug 14, 2017

You may have applications that can be executed by simply copying files into a folder stored on a computer, perhaps adding some registry keys or performing other manual changes to get the application working. AppDNA deals with those types of applications, enabling you to reduce the time, cost and risk for OS migration and virtualization technology adoptions by automating application compatibility and overall application migration.

AppDNA not only helps you determine if an application without an installation routine is compatible with an OS or virtualization technology, it also captures the application source and optionally produces a usable installation routine that can be added to your managed application library.

Even though you can easily create your own installer outside of AppDNA, using AppDNA enables you to reduce the overhead of managing your applications (cost, effort, and staff). Since you are already going through a capturing process with AppDNA to get the application source into the required format to run compatibility checks, it makes sense to use your third-party application packaging and virtualization software to create usable output so you can focus your expertise where it is really needed on the more difficult tasks.

AppDNA provides three ways to accomplish capturing your application source to import the application DNA for compatibility analysis and automating processes. The option used depends on the output desired and who will perform the installation/configuration (expert user, developer, or packager/sequencer). The following table outlines the options, how they can be used, and the potential use cases.

AppDNA capturing feature Description Use cases
Install Capture
  • Configures (copies files, creates registry keys, adds services, and so on) and captures desktop applications within a virtual machine that is launched during the AppDNA software import process.
  • Supports launching .exe files, but in the absence of a setup executable, you can point the Install Capture feature to a placeholder executable, such as notepad.exe or cmd.exe. This allows the Install Capture feature to launch a configured virtual machine that you can then use to copy files, create registry keys, add services, and so on.
  • Creates an .msi file that can then be imported into AppDNA. Cannot be used for deployment.
  • Runs within the AppDNA software environment, from the AppDNA server or a machine configured with the AppDNA client.
  • Optionally, you can package applications into usable installers or sequence applications using Microsoft App-V (just a few examples of the types of things you can automate).
  • AppDNA automatically imports the .msi created as part of the Install Capture process.
  • Configuration requires more than copying a set of files (that is, creating registry keys, adding a service, and so on).
  • You want the AppDNA software to automatically import the MSI created upon completion.
  • You want to automate the creation of usable output (i.e. packages and sequences).
  • Administrators are responsible for capturing the application.
Self-Provisioning
  • Stand-alone tool that configures (copies files, creates registry keys, adds services, and so on) and captures desktop applications for import into AppDNA database using any type of machine (virtual, physical, or VDI).
  • Supports launching .exe files, but in the absence of a setup executable, you can point the Self-Provisioning feature to a placeholder executable, like notepad.exe or cmd.exe. This allows Self-Provisioning to launch a configured virtual machine that you can then use to copy files, create registry keys, add services, and so on.
  • Runs independently from the AppDNA software environment.
  • Default setting creates an .msi file that can then be imported into the AppDNA software database. Cannot be used for deployment.
  • Optionally, you can package applications into usable installers or sequence applications using Microsoft App-V (just a few examples of the types of things you can automate).
  • Output created can be placed on a shared location for administrators to import the .msi into the AppDNA software database and perform an analysis to determine application compatibility.
  • Configuration requires more than copying a set of files (that is, creating registry keys, adding a service, and so on).
  • You want to enable expert users, developers, packagers/sequencers to do their own configurations and captures without being tied to the AppDNA software environment.
  • You want to automate the creation of usable output (that is, packages and sequences).
MSI Converter
  • Standalone tool that provides an alternative mechanism to generate an MSI file from a set of application source files in a folder. Originally designed for converting web application source files into an MSI, but can be used on any files.
  • Runs independently from the AppDNA software environment.
  • Output created can be placed on a shared location for administrators to import the .msi into the AppDNA software database and perform an analysis to determine application compatibility.
  • You only have files to capture.
  • You want to perform the capture outside of the AppDNA software environment.
  • No interest in creating usable output (that is, packages and sequences). Runs independently from the AppDNA software environment.

Install Capture feature

This section shows an example of how you can use Install Capture to capture an application that does not have an installation routine and requires manual configuration. The following diagram shows the process that AppDNA follows.

Install Capture process diagram

Note: These steps assume you configured a virtual machine that can integrate with your AppDNA environment.

To import applications using Install Capture:

  1. From the AppDNA side bar, choose Import & Analyze > Applications.

  2. Click the Install Capture tab.

  3. On the Install Capture tab, select the .exe or other installation files that you want to import.

  4. Click Browse to select a placeholder executable.

    You can use anything, provided it exists on the virtual machine in the path specified. This example uses cmd.exe.

    Note: When selecting applications that have an install routine, use a UNC path such as \\MyServer\MyApplications\MyApplication.exe. The path you specify must be accessible from the virtual machine, otherwise the import will fail.

After you select the files, AppDNA lists them on the screen. As shown in the screen shot, the AppDNA software displays a warning about the hard-coded path. This is acceptable since cmd.exe is in the same location on the virtual machine.

Install Capture tab with warning message

This example uses the default AppDNA software execution profile called Snapshot. For information about the more advanced AppDNA software execution profiles which you can use to automate other processes, see Execution Profiles.

Note: Citrix also has a library of non-supported execution profiles that are available for download from the Citrix AppDNA Extensions Podio site. These extensions are customized to automate the processes of interest to our customers. To access the extensions, create a Podio account and send an email to appdnafeedback@citrix.com requesting access to the site.

The Snapshot execution profile has three main steps:

  1. Before snapshot – Performs an analysis of the virtual machine’s state, including its complete file system and registry entries.
  2. Launch command – Runs the application’s non-MSI installer. In this example, there is no installation routine, so you launch cmd.exe. While cmd.exe is open, you then add files and anything else that needs to be captured for the application.
  3. After snapshot – Performs a second analysis of the virtual machine’s state when the installation routine has finished (in this case, when you close the cmd.exe window), including its complete file system and registry entries.

The difference between the state of the virtual machine in the before and after snapshots represents the changes made by installing the application. The capture process uses this information to generate an .msi file for importing into the AppDNA database and then resets the state of the virtual machine back to how it was before the installation. Click Import on the right side of the toolbar to start capturing the application DNA for loading into the AppDNA database.

After you click Import for applications on the Install Capture tab, the AppDNA Virtual Machine Remote Controls window opens.

The processing that takes place is controlled by the execution profile. When the Snapshot execution profile is in use, the Execution profiles “before snapshot” is the first action that is run on the virtual machine.

Snapshot process output in cmd window

After the “before snapshot” has completed, the installation runs, which in this case is cmd.exe.

Installation progress in cmd window

Leave cmd.exe open until after you make all configuration changes required for the application. Keep in mind that cmd.exe acts as setup.exe. The AppDNA execution profile script goes to the next step after the installation finishes and you close the cmd window.

The following screen shot shows the result of copying from a network share the folder, Icon Extractor 1.07, into c:\program files. That folder contains the required application files.

Copy folder result in window

You also add the necessary shortcuts to the Start Menu. No other files are needed for this application without an installation routine. Of course, you may have an application that requires the creation of a service, environment variable, ODBC entry, and so on.

Shortcuts output in window

After you finish configuring the application, you can close the cmd.exe window. The “after snapshot” begins (assuming the Snapshot execution profile is in use).

After snapshot output in cmd window

When the after snapshot completes, the AppDNA Snapshot execution profile copies the output to the designated network share and begins loading the newly created MSI into the database. When the import finishes, the AppDNA Virtual Machine Remote Controls window closes and the Install Capture tab displays the progress of the MSI import process.

MSI import progress

Typically, the progress bar will be green indicating the installer returned a successful exit code. In this case, because no installer was used, AppDNA receives a non-zero exit code resulting in an amber progress bar. You can ignore that warning and proceed with analyzing the application against the desired modules to check compatibility. To do that, click the Analyze button now or after you have several applications to analyze.

MSI import with amber progress bar

The analysis creates a folder with the name of cmd.exe in the designated output location as defined in the AppDNA configuration settings. The folder contains the MSI created and the extracted source files.

Snapshot result in window

If you wait to analyze the application, click Select > All Applications in the side bar. You can filter the Application List screen to view only what was just imported.

In this screen, you can change the name to reflect the real name of the product by clicking the pencil icon to the left of the Name column.

Applications list after snapshot process completes

When ready to analyze, make sure the application is selected and click the Analyze button.

Self-Provisioning feature

This section shows an example of how you can use the stand-alone Self-Provisioning feature to capture an application that does not have an installation routine and requires manual configuration. The following diagram shows the process that AppDNA follows.

This example uses the disconnected mode. In that mode, the Self-Provisioning client and the AppDNA client are on different networks and do not both have access to the same network file share. AppDNA wraps the client instruction files and execution profile into a package that the administrator sends to the end user. The end user in turn sends the output of the Self-Provisioning client to the administrator.

Self-Provisioning process flowchart

Note: These steps assume you have a configured an AppDNA Self-Provisioning client.

To prepare the application for Self-Provisioning:

  1. From the AppDNA side bar, choose Import & Analyze > Applications.

  2. Click the Self-Provisioning tab.

  3. Select the installation file that you want to capture. Just like the Install Capture feature, this would typically be a setup executable that is referenced using a UNC path.

    This example of capturing an application that does not have an installation routine and needs to be manually configured uses cmd.exe C:\Windows\System32\cmd.exe.

    After you have selected the files, AppDNA lists them on the screen.

    Application listed in Self-Provisioning tab

    This example uses the default AppDNA software execution profile called Snapshot. For information about the more advanced AppDNA software execution profiles which you can use to automate other processes, see Execution Profiles.

    Note: Citrix also has a library of non-supported execution profiles that are available for download from the Citrix AppDNA Extensions Podio site. These extensions are customized to automate the processes of interest to our customers. To access the extensions, create a Podio account and send an email to appdnafeedback@citrix.com requesting access to the site.

    Note: Before you start using Self-Provisioning, you must configure the output path in the Self-Provisioning settings. Click Configuration on the Self-Provisioning tab toolbar to open the Self-Provisioning Settings.

  4. Select the application(s) you want to include and then click Publish.

    AppDNA presents a warning that this will overwrite the existing status of the selected applications.

    Self-Provisioning override warning

  5. Click Yes to confirm.

    AppDNA then updates the screen with the details of the client instruction file for each selected application.

    Client Instruction File listed in Self-Provisioning tab

  6. Click Export (to the right of the client instruction file) to create a package to send to the end user (expert user or developer) who will run the Self-Provisioning client. This opens the Export Self-Provisioning Package dialog box:

    • Input file from client perspective – Specify the name and location of the application’s installation package, relative to the Self-Provisioning client machine.
    • Folder where the capture results are to be stored – Specify the default location where the Self-Provisioning client will write the output of the application capture. The end user can specify a different location during the application capture. Make sure you specify this relative to the Self-Provisioning client machine.
    • Exported package path – Specify the name and location of the package that is to be sent to the end user who will run the Self-Provisioning client.

    Next send the exported package to the user who will perform the Self-Provisioning in the stand-alone Self-Provisioning client.

    The end user will go through a capture process similar to the AppDNA Install Capture feature process.

    End-users performing the configuration must install the AppDNA Self-Provisioning client. The installers, in a Tools subfolder of the AppDNA installation folder, are:

    Citrix AppDNA Self-Provisioning Client.msi

    Citrix AppDNA VM Configuration.msi

    The MSIs created can be imported into AppDNA using the Direct Import tab in the Import Applications Screen. See Direct import for more information.

MSI Converter

The AppDNA MSI Converter is a stand-alone tool that is installed as part of AppDNA and provides an alternative to generating an MSI file from a set of application source files in a folder. The original intent of the MSI Converter was to convert web application source files into an MSI so that the web application could be checked for compatibility; however, you can use this option on any files.

Note: To install the AppDNA stand-alone web capture tools, you need the installer (called Citrix AppDNA Web Application Capture.msi). This comes with AppDNA. It is copied into a Tools subfolder of the AppDNA installation folder when you install AppDNA.

This procedure provides instructions for using the Stand-Alone Web Application Source to MSI Converter to generate an MSI from one or more folders containing application source files.

  1. From the Windows Start menu, choose Citrix AppDNA > Web Application Source to MSI Converter.

  2. If necessary, click Configure on the toolbar to change options.

    For information about these options and those in the next step, see Stand-alone Web Application Source to MSI Converter.

  3. Click Select, Search for Folders or Import List to select the folders that contain the web application source files that you want to convert.

    The selected folder(s) appear in the window.

  4. Select the folder(s) for which you want to create an MSI.

  5. Click Start.

The MSI Generator shows whether the processing is successful in the Status column. Completed means that the processing finished successfully. If the processing is not successful, click the Refresh button to view the log. This provides information that you can use to troubleshoot the problem.

Output

The output from the Stand-Alone Web Application Source to MSI Converter is located in the folder that is specified in the Configuration dialog box. The output for each application is stored in a separate folder, whose name is derived from the folder name and the date and time stamp.

You can then import the MSIs into AppDNA using the Direct Import tab in the Import Applications Screen. See Direct import for more information.