AppLink Settings Dialog Box

AdminStudio 2023 | 25.0 | ThinApp Assistant

Note:The AppLink Settings feature requires ThinApp 4.x If you are using Thinstall 3.x, any AppLink settings that you define will be ignored.

The AppLink (Application Link) feature enables you to configure relationships between ThinApp applications that work together. You can set AppLink settings for the current ThinApp application on the AppLink Settings dialog box, which is opened by clicking the AppLink Settings option in the More Options menu of the ThinApp Assistant Build Options page.

You can use the AppLink feature to perform the following tasks:

Linking runtime components to applications—You can link runtime components to the applications that use them. For example, you can link a package containing the Java runtime environment (JRE) or ODBC drivers to a package containing a browser application.
Linking add-ons and plug-ins to applications—You can link add-ons and plug-ins to applications. For example, Microsoft Office add-ons can be linked to applications or Adobe Photoshop plug-ins can be linked to a package containing Photoshop.
Linking packaged applications to service packs—You can link packaged applications to service packs. By using AppLink, you can upgrade or roll back your service packs by changing the service pack that you capture and link to its parent application.

The AppLink Settings dialog box has the following options:

AppLink Settings Dialog Box

Option

Description

AppLink References

List of ThinApp applications that are linked to the open ThinApp application. The following information is listed:

Reference—List of linked ThinApp applications, including the application location and name.
Required—If Yes is listed in this column, the linked application must be available in order for the ThinApp application to run. If the linked application cannot be found, the ThinApp application will fail to run. See Required and Optional Linked Applications for more information.

Browse Button

Click the Browse button to open the Add AppLink Reference dialog box, where you can add a linked application to the AppLink Reference list. For more information, see Add AppLink Reference Dialog Box.

Up and Down Arrows

ThinApp uses a “last import wins” policy to determine what happens when two packages are imported that have the same files or registry keys. Therefore, you can use the Up and Down arrows to order the list of linked applications. See Collisions and Order of Import for more information.

Note:Initially, the Required and Optional linked applications are listed on this dialog box together, and you can change the order of these applications using the Up and Down arrows. However, at runtime, the linked applications in the Required category are read first, before those in the Optional category, even though an Optional application might have been listed before a Required application in the AppLink References list. Also, each time the AppLink Settings dialog box is reopened, the Required linked applications will be grouped at the top of the list, before all Optional applications.

Required and Optional Linked Applications

When an application is linked to a ThinApp application, it can be designated to be either Required or Optional:

Required Applications

If a package is required, it has a mark in the Required column. If this package is missing from the virtual package, it will fail to run.

If any specified package fails to import, an error message will be displayed and the parent executable file will exit.
If a wildcard pattern is used to specify a package, no error message is displayed if no files match the wildcard pattern. Therefore, if a wildcard pattern is used to specify a package, the reference is always optional.
To continue even if load errors occur, make the package references optional instead.

Optional Applications

If a package does not have a mark in the Required column, it is optional. An optional package operates the same as a required package except that if an import fails to load, the error is ignored and the main application will start executing.

Collisions and Order of Import

ThinApp uses a “last import wins” policy to determine what happens when two packages are imported that have the same files or registry keys.

For example, if PackageA.exe has c:\myinfo.txt in its virtual file system and PackageB.exe also has c:\myinfo.txt in its virtual file system, ThinApp will determine what happens based on which package is imported last.

Package order in the AppLink References list—If PackageA.exe is listed before PackageB.exe on the AppLink References list, PackageB.exe’s copy of c:\myinfo.txt will be used. But if PackageB.exe is listed before PackageA.exe on the AppLink References list, PackageA.exe’s copy of c:\myinfo.txt will be used.
Wild cards—When wild cards are used, alphabetical order is used to load packages, so if you enter Package*.exe in the AppLink References list, PackageB.exe will be loaded last (after PackageA.exe), so its copy of c:\myinfo.txt will be used.
VB scripts—If two or more packages include VB scripts, the order of execution for the VB Scripts will be alphabetical order by the name of the package. If two packages contain a VB script with the same name, the “last import wins” policy will be used to execute only the version of the VB script from the last imported package containing a script with that name.

Caution:Because VB Script name collisions could cause scripts from other packages not to be executed, it is important to use unique name for VB Script filenames.

Security and Authorization

The user running the ThinApp application must be a member of all PermittedGroups sections for all of the linked (imported) ThinApp applications. If this is not the case, an Access Denied message will be displayed and the main ThinApp application will fail to load.

The following are limitations of the AppLink feature:

ThinApp supports importing up to 250 packages at a time, and each package may be any arbitrary size.
Packages that have been updated via AppSync will not have updates visible to the parent executable.
Sandbox changes from packages being imported will not be visible to the parent executable.

See Also