XAPPL Configuration

XAPPL files specify the configuration for an image or virtual application created with Turbo Studio. XAPPL files are formatted in XML, so it's easy to edit a virtual application configuration in a text editor just as you can with Turbo Studio user interface.

Here is a table that describes the purpose of each of the tags you see in XAPPL files created with Turbo Studio:

Element/Attribute Description

OutputLocation

Path to the folder where the virtual application executable is created. This can be a local path, a UNC path, or a mapped drive.

OutputFile

File name of the virtual application executable.

Project-Type

Denotes whether configuration is for a virtual application (Application) or an SVM (Component).

Licensing

Contains information about the license used to build the virtual application.

Output

The DiagnosticMode attribute denotes when the application output should log diagnostic information (True) or not (False). If true, the virtual application will create diagnostic logs in the directory where it was executed from.
The SourcePackage attribute is not used.

MSI

All sub-elements contain settings pertaining to the configuration of the MSI setup file:

  • The outputMsiPath attribute indicates the location where the setup MSI is built.
  • The title attribute indicates the value of the MSI title property.
  • The subject attribute indicates the value of the MSI subject property.
  • The keywords attribute indicates the value of the MSI keywords property.
  • The productName attribute indicates the value of the MSI product name property.
  • The productVersion attribute indicates the value of the MSI product version property.
  • The manufacturer attribute indicates the value of the MSI manufacturer property.
  • The productLanguage attribute indicates the value of the MSI product language property.
  • The author attribute indicates the value of the MSI author property.
  • The description attribute indicates the value of the MSI description property.
  • The manufacturerUrl attribute indicates the value of the MSI manufacturer URL property.
  • The autoBuild attribute denotes whether the MSI should build when the virtual application build completes successfully (True) or not (False).
  • The isolatePerUser attribute denotes whether the MSI setup should be installed on a per-user basis (True) or installed for all users (False). When installing per-user, the install root path is Application Data. When installing for all users, the install root path is Program Files.
  • The applicationFolder attribute indicates the subfolders into which the virtual application should be installed (Company Name\Product Name).
  • The upgradePreviousVersion attribute denotes whether the setup should maintain the same Upgrade code when it builds (True) or change the Upgrade code for each build (False). This allows the setup to upgrade previous versions when it is installed, or to exist side by side.
  • The productCode attribute indicates the value of MSI product code property.
  • The upgradeCode attribute indicates the value of MSI upgrade code property.
  • The componentId attribute indicates the value of the MSI component id property.

Packages

All sub-elements contain settings pertaining to the configuration of the packages included in the virtual application.

Clr

The .NET Clr runtime element and all sub-elements contain settings pertaining to the configuration of the virtual .NET Framework runtime.

Direct X

The DirectX element and all sub-elements contain settings pertaining to the configuration of the virtual DirectX runtime.

Java

All sub-elements contain settings pertaining to the configuration of the virtual java runtime.

RunTime

The name attribute indicates the name of the java runtime (Java). 
The platform attribute indicates the platform that the java runtime is designed for (x86).
The version attribute indicates the version of the java runtime. The available versions are Java 5 (1.5.0.140) and Java 6 (1.6.0.30).

Settings

The startupType attribute denotes whether to use the jar file (JAR) or class path (Class) command line parameters for java.exe to launch the application.
The startup attribute indicates the jar file path or class name depending on the StartupType.
The classpath attribute indicates the path to the class files of the Java runtime.
The options attribute denotes any additional command line parameter.

Package

The name attribute indicates the name of the component or runtime.
The platform attribute indicates the platforms that the component or runtime is supported on. The following are the only available values:

  • Any platform (Any)
  • x86 platform (x86)
    The version attribute indicates the version of the component or runtime.

Virtualization Settings

All sub-elements contain settings pertaining to the configuration of the virtual operating system.

  • The compressPayload attribute controls whether the output executable will be compressed (True) or not (False).
  • The deleteSandbox attribute will cause the sandbox to be reset automatically when the virtual application is shutdown (True).
  • The disableXenocodeCommandLine attribute controls the ability to execute (False) any file from within the virtual filesystem.
  • The enableDRMCompatibility attribute ensures compatibility (True) with applications protected by software formerly known as "Armadillo" and other DRM software.
  • The enhancedDEPCompatibility attribute provides compatibility for systems with Data Execution Protection enabled (True). This setting is used primarily for virtual applications running on Windows 2003.
  • The exeOptimization attribute will attempt to launch the startup executable with the initial virtual machine process, preventing the creation of a separate application process (True).
  • The forceIndicateRunningElevated attribute forces the application to run as if it has elevated security privileges (True).
  • The forceReadShareFiles attribute forces any file opened by any process within the virtual environment to do so with the READ_SHARE flag set (True).
  • The ie6Emulation attribute denotes a special mode required for the Internet Explorer 6 template (True). For all other apps, this should be disabled (False).
  • The isolateWindowClasses attribute is used to isolate windows classes, as registered via the Windows ::RegisterClass or ::RegisterClassEx APIs. For example, this allows a virtualized Firefox instance to run while a non-virtualized instance is running.
  • The launchChildProcsAsUser attribute causes all child processes to be provided with the same level of privileges as the virtual machine root process (True).
  • The minSandboxSpaceAvail attribute allows specifying a size in MBs. If set, the virtual application will enforce at startup that the sandbox volume has at least this much space available to the user. A value of -1 disables this enforcement.
  • The notifyProcessStarts attribute causes a notification to be sent as a debugging output string whenever a new process is started within the virtual environment (True).
  • The readOnlyVirtualization attribute denotes whether the virtual application has the ability to modify virtual files and registry settings (False) or not (True). Setting this attribute to True will prevent modification to the virtual filesystem and virtual registry.
  • The sandboxPath attribute indicates the base path of the application sandbox @APPDATALOCAL@\Spoon\Sandbox\@TITLE\@\@VERSION@. The workingDirectory attribute defines what directory the application will run in.
  • The shutdownProcessTree attribute will cause the all child processes spawned within the virtual environment to be shutdown when the root process exits. By default, the root process is specified by setting the startup file.
  • The subsystem attribute indicates the application output type. It can be inherited from the startup file (Inherit) or set explicitly to be a Windows application (GUI) or console application (Console). If Inherit is set, but the startup file is either not in the virtual filesystem or not an executable, then the output will be a Windows application.
  • The suppressBranding attribute controls the branding pop-up that is displayed (False), or not displayed (True) in the lower right-hand corner during application startup.
  • The suppressPopups attribute will prevent an error dialog popup if the virtual application encounters a fatal startup error, and will cause the application to exit silently (True).
  • The suppressSandboxCollisionCheck attribute will enable or disable the ability to detect when multiple applications are trying to access the same sandbox at the same time. This attribute is set to "False" by default.
  • The trimUACManifest attribute removes items from the manifest that may require elevation (True).
  • The waitForChildOnly attribute will cause the initial virtual machine process to only wait for its child processes to exit before exiting (True). This only applies if the exeOptimization attribute is disabled. The default behavior is to wait until all processes in the sandbox exit (False).

XLayers

Additional SVM's that will be loaded when the application starts

  • The xlayerSearchPattern attribute to provide the default search pattern, similar to what would be passed to /XLayerPath
  • The RequiredXLayer sub-element specifies which SVMs are required to be loaded. Otherwise an error is reported. Further details are located in the Specify Additional SVMs for a Virtual Application section.

NamedObjectIsolation

Allows users to isolate select objects in the application from the host machine that may use the same name. Details on how to use this feature can be found in the Enable Shared Object Isolation section.

Dns

Allows users to add explicit DNS mappings which are reflected within the virtual environment. More information on virtualized network configuration can be found in the Virtualizing IP Protocols, DNS entries, and proxy settings section. This XAPPL field no longer must be configured manually.

WorkingDirectory

Specifies which directory the virtual application will execute from.

  • The option sub-element can be set to "StartupFileDirectory", "CurrentDirectory" or "specifiedDirectory".
  • The specifiedDirectory sub-element lists the specified path selected for the application.

ChildProcessVirtualization

  • The spawnExternalComServers attribute controls whether the virtual application launches ComServers in the virtual environment (True) or the external environment (False).
  • The spawnVm attribute denotes whether the spawned external applications are spawned inside the virtual environment (True) or outside the virtual environment (False).

ChildProcessException

The name attribute indicates the name of the executable file (extension included) to except from the effects of the spawnVm attribute.

CustomMetadata

All sub-elements contain settings pertaining to the configuration of the individual custom metadata items.

CustomMetadataItem

  • The property attribute indicates the name of the custom metadata item.
  • The value attribute indicates the value of the custom metadata item.

StandardMetadata

All sub-elements contain settings pertaining to the configuration of the individual standard metadata items.

StandardMetadataIte

The property attribute indicates the name of the standard metadata item.  The following are the available standard metadata:

  • Product Title (Title)
  • Publisher (Publisher)
  • Description (Description)
  • Website (Website)
  • Product Version (Version)

SplashImage

The path attribute indicates the source path to the splash image displayed at application startup.
The transparency attribute indicates the color in the splash image that should be made transparent when the image is displayed (E.g. Magenta).

StartupFiles

All sub-elements contain configuration pertaining to the individual startup files.

StartupFile

The node attribute indicates the path of the startup file.
The tag attribute indicates the command line trigger used to specify this entry as the startup to use.
The commandLine attribute indicates the command line arguments to pass to the startup file.
The default attribute denotes whether this entry is executed automatically when no tag is specified (True) or not (False).

StartupShims

All sub-elements contain configuration pertaining to the individual startup shims.

StartupShim

The startup shim is a virtualized binary that is invoked prior to the startup file. Startup shims are used to perform customized licensing checks or other initialization tasks.

  • The shimDllPath attribute indicates the path to the virtual shim DLL implementation. This field is required.
  • The paramOnInitialize attribute indicates a string to be passed to the shim OnInitialize function.
  • The startup shim signature is typedef BOOL (__stdcall *FnOnInititialize) LPCWSTR pwcsInitilizationToken). The return value indicates whether virtual machine execution should proceed.

Layers

All sub-elements are individual virtual layers.

Layer

The Layer element and all sub-elements contain settings pertaining to the configuration of this layer of the virtual operating system.

  • The name attribute indicates the name of the layer. The default layer (Default) is the only layer for whom the name matters. All other layer names are purely informational.

Condition

The variable attribute indicates the host system setting that will be evaluated. The operating system version (OS) is the only available option.
The operator attribute indicates the Boolean operation that will be used to evaluate the host system. The available Boolean operations are:

  • greater than or equal to (GreaterEqual)
  • greater than (Greater)
  • equal to (Equal)
  • not equal to (NotEqual)
  • less than (Less)
  • less than or equal to (LessEqual)
    The value attribute indicates the value against which the host system will be evaluated, using the Boolean operation. The available values in ascending order are: 
    Windows 2000 (Win2k)
    Windows XP (WinXP)
    Windows 2003 (Win2k3)
    Windows Vista (Vista)
    Windows 7 (Win7)
    Windows 8 (Win8)

Filesystem

All sub-elements contain settings pertaining to the configuration of the virtual filesystem.

Directory

All sub-elements contain settings pertaining to the configuration of this directory of the virtual filesystem.

  • The rootType attribute indicates the root system folder that this virtual folder is mapped to on the host filesystem. Directory elements with the rootType attribute are always directly beneath the Filesystem element.  The following are the available rootTypevalues:
    • Application Directory (Application)
    • Windows\System32 (System)
    • Windows (OS)
    • System Drive Root Directory (SysDrive)
    • Program Files\Common (AllProgramsCommon)
    • Program Files (AllPrograms)
    • Current User - Start Menu (StartMenu)
    • Current User - Start Menu\Programs (Programs)
    • Current User - Start Menu\Programs\Startup (Startup)
    • Current User - Application Data (AppData)
    • Current User - LocalSetting\Application Data (AppDataLocal)
    • Current User - Desktop (Desktop)
    • Current User - Templates (Templates)
    • Current User - Favorites (Favorites)
    • Current User - Music (Music)
    • Current User - Pictures (Pictures)
    • Current User - My Documents (Documents)
    • %PROFILE%  (Profile)
    • All Users - Start Menu (StartMenuCommon)
    • All Users - Start Menu\Programs (ProgramsCommon)
    • All Users - Start Menu\Programs\Startup (StartupCommon)
    • All Users - Application Data (AppDataCommon)
    • All Users - Desktop (DesktopCommon)
    • All Users - Templates (TemplatesCommon)
    • All Users - Favorites (FavoritesCommon)
    • All Users - Music (MusicCommon)
    • All Users - Pictures (PicturesCommon)
    • All Users - My Documents (DocumentsCommon)
    • %ALLUSERSPROFILE% (ProfileCommon)
  • The isolationattribute indicates the isolation setting of the virtual folder. The available values are:
    • Full isolation (Full)
    • WriteCopy isolation (WriteCopy)
    • Merge isolation (Merge)
  • The name attribute indicates the name of the virtual directory.
  • The hide attribute denotes whether the directory is marked as hidden (True) or visible (False).

File

The name attribute indicates the name of the file.
The hide attribute denotes whether the file is marked as hidden (True) or visible (False).
The source attribute indicates the source path to the file

Registry

All sub-elements contain settings pertaining to the configuration of the virtual registry.

Key

All sub-elements contain settings pertaining to the configuration of this key of the virtual filesystem.

  • The rootType attribute indicates the root system folder that this virtual folder is mapped to on the host filesystem. Key elements with the rootType attribute are always directly beneath the Registry element. The following are the available rootTypevalues:
    • HKEY_CLASSES (ClassesRoot)
    • HKEY_CURRENT_USER (CurrentUser)
    • HKEY_LOCAL_MACHINE (CurrentUser)
    • HKEY_USERS (Users)
  • The name attribute indicates the name of the key.
  • The namePathInformationTuples indicates that there is a path in the name or value of the registry item. There are 3 comma delimited integers for each path found in the name/value.1. Flags that indicate the state of the path (valid combinations: 0x0, 0x1, 0x2, 0x4, 0x5, 0x6)
    0x1 - All Uppercase
    0x2 - All Lowercase
    0x4 - Uses Short Path Names
    2. Start index of the path
    3. Length of the path
  • The isolationattribute indicates the isolation setting of the virtual folder. The available values are:
    • Full isolation (Full)
    • Merge isolation (Merge)

Value

The name attribute indicates the name of the value.
The type attribute indicates the type of the value. The available values are:

  • REG_SZ and REG_EXPAND_SZ (String)
  • REG_DWORD (DWORD)
  • REG_QWORD (QWORD)
  • REB_BINARY (Binary)
  • REG_MULTI_STRING (StringArray)
    The namePathInformationTuples indicates that there is a path in the name or value of the registry item. There are 3 comma delimited integers for each path found in the name/value.
    1. Flags that indicate the state of the path (valid combinations: 0x0, 0x1, 0x2, 0x4, 0x5, 0x6)
      0x1 - All Uppercase
      0x2 - All Lowercase
      0x4 - Uses Short Path Names
    2. Start index of the path
    3. Length of the path
      The value attribute indicates the value of the value. This is true for all types, except StringArray, which contains the String sub-element.

Environment Variables

The name attribute indicates the name of the environment variable.
The value attribute indicates the value of the environment variable.

Services

The name attribute indicates the name of the windows service.
The autoStart attribute denotes whether the windows service starts when the virtual application starts (True) or not (False).
The commandLine attribute indicates the startup command line of the windows service.
The friendlyName attribute indicates the friendly name of the windows service.
The description attribute indicates the description of the windows service.
The objectName attribute indicates the account under which the windows service ran when not virtualized.
The keepAlive attribute denotes whether the windows service should continue running after the startup application has closed (True) or not (False).
The start attribute indicates the value of the Start DWORD value in the Windows Services registry key.
The type attribute indicates the value of the Type DWORD value in the Windows Services registry key.
The errorControl attribute indicates the value of the ErrorControl DWORD value in the Services registry key.

Shortcuts

All sub-elements contain settings pertaining to the configuration of the MSI shortcuts.

Folder

All sub-elements contain settings pertaining to the configuration of the MSI shortcuts in this folder.
The name attribute indicates the name of the folder. The two top level folders represent the Desktop (Desktop) and the Programs menu on the Start menu (Programs Menu).

Shortcut

The name attribute indicates the name of the shortcut.
The targetPath attribute indicates the path of the StartupFile that is the target of the shortcut.
The targetParameter attribute indicates the Trigger or Tag of the StartupFile that is the target of the shortcut.
The arguments attribute indicates the arguments passed to the target of the shortcut at runtime.
The showCmd attribute denotes whether the application should start in a maximized (3), minimized (7) or regular (1) window state.
The description attribute indicates the description of the shortcut.

IconResource

The IconResource sub-element contains an identifier of the icon that is used for the Shortcut.

ProgIds

All sub-elements contain settings pertaining to the configuration of the ProgId.

  • The name attribute indicates the name of the ProgId.
  • The description attribute indicates the description of the ProgId.

IconResource

The IconResource sub-element contains an identifier of the icon that is used for the file association.

HarvestSettings

The HarvestSettings element only appears in Desktop Scan configurations, or recipes. This section tells the configuration which files, folders, and registry keys to add or delete from the build.

Extension

All sub-elements contain settings pertaining to the configuration of the file extensions for the ProgId.

  • The extension attribute indicates the file extension that is associated with the ProgId.
  • The mimeType attribute indicates the MIME type of all files with the extension.

DefaultPrograms

For the DefaultPrograms element, specify the following parameters:

  • name: Name of the application (e.g. Thunderbird, Firefox).
  • friendlyName: Friendly name (e.g. Thunderbird, Firefox).
  • description: Description (e.g. Mail Client, Web Browser).
  • clientType: Type of Default Program (e.g. Browser, Mail, StartMenuInternet). This can be found under Current user root/Software/Clients or Local machine root/Software/Clients.
  • hidden: This should be set to false.
  • default: This should be set to true.  
     
    The sub-elements of the DefaultPrograms are:
  • IconResource: This is the program icon and can be copied from the ProgId section of the XAPPL.
  • data: This contains data to render the icon.
  • Extension: These are the file extensions that use this DefaulProgram (e.g. .eml, .html, .htm).
  • name: This is the extension (e.g. .eml, .html, .htm).
  • progId: This is a reference to which ProgId to use to handle this type of file extension.
  • Protocol: These are the protocols that use the DefaultProgram (e.g. mailto, http, https).
  • name: This is the name of the protocol (e.g. mailto, http, https, news).
  • progId: This is a reference to the ProgId that will handle this protocol.
  • clientType: This is the name of the client under Current user root/Software/Clients or Local machine root/Software/Clients.
  • SimpleMapi: This is specific to the mail clientType.
  • mapiDllPath: Path to the DLL to use for MAPI for this mail client.
  • mailClientPath: Path to the main exe of the application.

Verb

All sub-elements contain settings pertaining to the configuration of the Verb for the file extension.

  • The title attribute indicates the title of the verb.
  • The verb attribute indicates the verb value.
  • The arguments attribute indicates the arguments passed to the target of the verb at runtime.
  • The default attribute denotes whether this verb is the default verb (True) or not (False).

Questions? Projects? Talk to us.