Step-by-step guide to learn how to create and optimize Application Layers with Citrix App Layering.
More from the Lab!
- Building a Dual-Xeon Citrix Lab: Part 1 – Considerations
- Building a Dual-Xeon Citrix Lab: Part 2 – Hardware
- Building a Dual-Xeon Citrix Lab: Part 3 – Windows and Hyper-V installation
- Lab: Part 4 – Hyper-V Networking
- Lab: Part 5 – NetScaler 11 Architecture and Installation
- Lab: Part 6 – Configure NetScaler 11 High Availability (HA Pair)
- Lab: Part 7 – Upgrade NetScalers in HA
- Lab: Part 8 – Save, Backup and Restore NetScaler 11 configuration
- Lab: Part 9 – Install Microsoft SQL Server 2014 (Dedicated)
- Lab: Part 10 – Citrix Licensing demystified
- Lab: Part 11 – Install XenDesktop 7.6
- Lab: Part 12 – Setup NetScaler 11 Clustering (TriScale)
- Lab: Part 13 – Configure Published Applications with XenDesktop 7.6
- Lab: Part 14 – Citrix StoreFront 3.x
- Lab: Part 15 – Configure SSL in StoreFront
- Lab: Part 16 – StoreFront load balancing with NetScaler (Internal)
- Lab: Part 17 – Optimize and secure StoreFront load balancing with NetScaler (Internal)
- Lab: Part 18 – Secure LDAP (LDAPS) load balancing with Citrix NetScaler 11
- Lab: Part 19 – Configure Active Directory authentication(LDAP) with Citrix NetScaler 11
- Lab: Part 20 – RDP Proxy with NetScaler Unified Gateway 11
- Lab: Part 21 – Secure SSH Authentication with NetScaler (public-private key pair)
- Lab: Part 22 – Ultimate StoreFront 3 customization guide
- Lab: Part 23 – Securing Citrix StoreFront DMZ deployment
- Lab: Part 25 – Upgrade to Citrix StoreFront 3.7
- Lab: Part 26 – Install/Upgrade Citrix XenDesktop 7.11
- Lab: Part 27 – Getting started with Microsoft Azure
- Lab: Part 28 – Getting started with Citrix Cloud
- Lab: Part 29 – Configure XenDesktop And XenApp Service with Microsoft Azure and Citrix Cloud
- Lab: Part 30 – Configure Identity and Access Management in Citrix Cloud with Microsoft Azure AD
- Lab: Part 31 – Configure NetScaler Gateway Service for XenApp and XenDesktop Service in Citrix Cloud
- Lab: Part 32 – Configure MCS with XenDesktop and XenApp Service in Citrix Cloud
- Lab: Part 33 – Configure Azure Quick Deploy with XenDesktop and XenApp Service in Citrix Cloud
- Lab: Part 34 – Configure Site Aggregation for Citrix Workspace in Citrix Cloud with XenDesktop 7.x located on-premises
- Lab: Part 35 – Configure a Hybrid NetScaler MA Service environment in Citrix Cloud
- Lab: Part 36 – Configure ShareFile in Citrix Cloud with StorageZones on-premises
- Lab: Part 37 – Upgrade NetScaler HA pair with NetScaler MA Service in Citrix Cloud
- Lab: Part 38 – How to Configure Full VPN Setup with Citrix NetScaler in CLI
- Lab: Part 39 – Configure Multi-Factor Authentication with Azure MFA Service and Citrix Workspace
- Lab: Part 40 – Getting Started with Citrix App Layering
- Lab: Part 41 – Configure Citrix App Layering
- Lab: Part 42 – OS Layer with Citrix App Layering
- Lab: Part 43 – Platform Layer with Citrix App Layering
- Lab: Part 44 – Application Layers with Citrix App Layering
- Lab: Part 45 – Layered Image Deployment with Citrix App Layering
- Lab: Part 46 – Elastic deployment with Citrix App Layering
- Lab: Part 47 – User Layers with Citrix App Layering
- Lab: Part 48 – Windows 10 and PVS with Citrix App Layering
We discussed in the previous posts of this Citrix App Layering series how to install and configure the appliance. We also reviewed how to work with OS and Platform layers in App Layering. In this post, we will create our first Application layers and optimize those layers according to best practices.
More from this Citrix App Layering series
- Introduction to Citrix App Layering
- Lab: Part 40 – Getting Started with Citrix App Layering
- Lab: Part 41 – Configure Citrix App Layering
- Lab: Part 42 – OS Layer with Citrix App Layering
- Lab: Part 43 – Platform Layer with Citrix App Layering
- Lab: Part 44 – Application Layers with Citrix App Layering
- Lab: Part 45 – Layered Image Deployment with Citrix App Layering
- Lab: Part 46 – Elastic deployment with Citrix App Layering
- Lab: Part 47 – User Layers with Citrix App Layering
- Lab: Part 48 – Windows 10 and PVS with Citrix App Layering
- Best Practices for Citrix App Layering
Note: Elastic deployment of Application layers is not part of this article.
Requirements
For this lab, you need the following:
- Citrix ELM installed and configured
- OS Layer imported
- Platform Layer created
- Binaries for your applications (Ex: Adobe Reader DC)
Best Practices for Platform Layer in Citrix App Layering
- You can install apps, copy files, modify registry in App layers
- You can install Antivirus in App layers
- Follow App Layering Recipes
- Put all Office apps in the same App layer
- You can adjust Application layers priorities to deal with conflicts
- Disable Auto-update feature in the apps
- Do not install requirements such as .NET and C++ libraries in App layers
- Do not install Windows Updates (only in the OS Layer)
- Join the machine to the domain if the application requires it. Remove the machine from the domain and reboot before finalizing the layer.
- User settings will be captured but not applied to other users
- Changes made to local users and groups are not saved in this layer. Use GPOs instead.
- You can add additional disks but you must remove them before finalizing the disk in the ELM console
- Remove binaries once apps have been installed
- Clear install logs
- App Layers are the only layers that can be cloned from the console
- Check this link for more best practices
Create new Application Layers with Citrix App Layering
Go to ELM console > Layers > App Layers and select Create App Layer.

Enter the layer details.

Select the OS Layer.

Go next.

Select the connector.

Go next.

Enter the disk filename.

Assign an icon.

Confirm to create a new application layer.

ELM will deploy the disk from the cache.

You can take a look in the repository for the new disk reserved for this layer.

ELM has finished the creation of the app layer.
Connect to the virtual machine and install the application(s) (Ex: Adobe Reader DC). You can install more than one application in the layer. You can also copy files, change the registry, etc.
Note: App layers are not in the domain. However if required, you can add the layer in the domain to install the apps. Make sure to remove the layer from the domain when you are done with the installs.

Disable Auto update feature for the application(s). For Adobe Reader, this can be done in the registry.
Note: An App Layering Recipe is available from Citrix for Adobe Reader.
1 2 3 4 5 6 7 8 9 10 11 |
HKLM\SOFTWARE\Wow6432Node\Adobe\Adobe ARM\Legacy\(product name)\(product code) Mode possible values: 0: Do not download or install updates automatically. 2: Automatically download updates but let the user choose when to install them. 3: Automatically download and install updates. (Default value) 4: Notify the user downloads are available but do not download them. HKEY_LOCAL_MACHINE\Software\WoW6432Node\ Policies\Adobe\Acrobat Reader\<version>\FeatureLockDown Set the value to 0 to disable automatic updates. |
Reboot to apply the setting.
Note: Remove all logs and install binaries from the layer.
Then click on Shutdown For Finalize.

Go to ELM console > Layers > App Layers and right click on the new layer. Then Finalize.

Go next.

Click on Finalize to confirm.

ELM will copy the disk to /mnt/repository/Unidesk/Finalize Disks/ in the repository.

Then it will move it the app layer disk.

You can find the ID of the layer with right click on the layer and properties.

Here the ID of the App layer is 2162689.
ELM will rename the disk using the ID.

Once everything has been completed, ELM will remove the virtual machine and the packaging disk.

The new Application layer has been created.

And the layer is now deployable.

Update Application Layer
Go to ELM console > Layers > App Layers and select the App layer.
To update the App layer, right click and Add Version.

Increment the version number and add a description.

Select the OS Layer.

Select Prerequisite Layers (optional).

Select the connector where ELM will deploy the virtual machine.

Select Platform Layer.

Enter the disk filename.

Confirm the creation.

ELM will prepare the new layer version.

After few minutes, ELM will start to create to deploy the virtual machines and its disks.

See below the virtual machine created in Hyper-V.

When everything is ready, ELM will automatically start the virtual machine.
The virtual machine is available. Logon and install updates (Ex: Winzip). Disable Auto-update in the application.
Note: if a reboot is required during the updates, it is recommended to reboot a second time.
Then click on Shutdown For Finalize (the icon is available on the desktop by default).
The virtual machine will shutdown.
Go to the ELM console > Layers > OS Layers and right click on the OS_2016 layer.
Select Finalize.
ELM will copy the disk from the share to the repository.
Location: /mnt/repository/Unidesk/Finalize Disks/.
Then ELM will copy it to the layer disk.
Location: /mnt/repository/Unidesk/Layers/App/.
The last step is to remove the virtual machine in Hyper-V.
That’s it! The new version of the layer has been deployed.
Export layer
Go to ELM console > Layers > Apps Layers and select Export.
Note: Export/Import is the supported method to backup layers

Select a network location and enter the proper credentials.

Select the item you want to export.

Select Finalize to export.

Take a look at the folder for the exported files.

Delete version of a OS layer
Note: You cannot delete layers or versions that are in use.
Right click on the OS layer and click on Delete Versions.

Select the version you want to delete. You can also delete the full layer with all its versions.

Click on Delete Versions to confirm.

Cancel a layer revision
Go to the layer task and click on Cancel to flush the current version of the layer.

ELM will flush everything for this version of the OS layer.

Import Layer
Go to ELM console > Layers > App Layers and select Import.

Specify the path and the credentials.

Select layer/version to import.

Confirm the import.

ELM will import the disk in the repository.

Clone App layers
Go to ELM console > Layers > Apps Layers and select the App layer then click on Clone Layer.

Note: Clone Layer feature is only available for App layers
Enter a new name for the layer, a version and a description.

Select an icon for the new layer.

Confirm the action.

ELM will start to clone the disk in the /mnt/repository/Unidesk/Layers/App/ folder in the repository.
Note: this disk will reset the revision number to R1.

Wait for the process to finish.

Once the process is finished, the new layer is available in the console.

That’s all for Application layers. Repeat the steps for all your applications and follow the recipes.
More from the Lab!
- Building a Dual-Xeon Citrix Lab: Part 1 – Considerations
- Building a Dual-Xeon Citrix Lab: Part 2 – Hardware
- Building a Dual-Xeon Citrix Lab: Part 3 – Windows and Hyper-V installation
- Lab: Part 4 – Hyper-V Networking
- Lab: Part 5 – NetScaler 11 Architecture and Installation
- Lab: Part 6 – Configure NetScaler 11 High Availability (HA Pair)
- Lab: Part 7 – Upgrade NetScalers in HA
- Lab: Part 8 – Save, Backup and Restore NetScaler 11 configuration
- Lab: Part 9 – Install Microsoft SQL Server 2014 (Dedicated)
- Lab: Part 10 – Citrix Licensing demystified
- Lab: Part 11 – Install XenDesktop 7.6
- Lab: Part 12 – Setup NetScaler 11 Clustering (TriScale)
- Lab: Part 13 – Configure Published Applications with XenDesktop 7.6
- Lab: Part 14 – Citrix StoreFront 3.x
- Lab: Part 15 – Configure SSL in StoreFront
- Lab: Part 16 – StoreFront load balancing with NetScaler (Internal)
- Lab: Part 17 – Optimize and secure StoreFront load balancing with NetScaler (Internal)
- Lab: Part 18 – Secure LDAP (LDAPS) load balancing with Citrix NetScaler 11
- Lab: Part 19 – Configure Active Directory authentication(LDAP) with Citrix NetScaler 11
- Lab: Part 20 – RDP Proxy with NetScaler Unified Gateway 11
- Lab: Part 21 – Secure SSH Authentication with NetScaler (public-private key pair)
- Lab: Part 22 – Ultimate StoreFront 3 customization guide
- Lab: Part 23 – Securing Citrix StoreFront DMZ deployment
- Lab: Part 25 – Upgrade to Citrix StoreFront 3.7
- Lab: Part 26 – Install/Upgrade Citrix XenDesktop 7.11
- Lab: Part 27 – Getting started with Microsoft Azure
- Lab: Part 28 – Getting started with Citrix Cloud
- Lab: Part 29 – Configure XenDesktop And XenApp Service with Microsoft Azure and Citrix Cloud
- Lab: Part 30 – Configure Identity and Access Management in Citrix Cloud with Microsoft Azure AD
- Lab: Part 31 – Configure NetScaler Gateway Service for XenApp and XenDesktop Service in Citrix Cloud
- Lab: Part 32 – Configure MCS with XenDesktop and XenApp Service in Citrix Cloud
- Lab: Part 33 – Configure Azure Quick Deploy with XenDesktop and XenApp Service in Citrix Cloud
- Lab: Part 34 – Configure Site Aggregation for Citrix Workspace in Citrix Cloud with XenDesktop 7.x located on-premises
- Lab: Part 35 – Configure a Hybrid NetScaler MA Service environment in Citrix Cloud
- Lab: Part 36 – Configure ShareFile in Citrix Cloud with StorageZones on-premises
- Lab: Part 37 – Upgrade NetScaler HA pair with NetScaler MA Service in Citrix Cloud
- Lab: Part 38 – How to Configure Full VPN Setup with Citrix NetScaler in CLI
- Lab: Part 39 – Configure Multi-Factor Authentication with Azure MFA Service and Citrix Workspace
- Lab: Part 40 – Getting Started with Citrix App Layering
- Lab: Part 41 – Configure Citrix App Layering
- Lab: Part 42 – OS Layer with Citrix App Layering
- Lab: Part 43 – Platform Layer with Citrix App Layering
- Lab: Part 44 – Application Layers with Citrix App Layering
- Lab: Part 45 – Layered Image Deployment with Citrix App Layering
- Lab: Part 46 – Elastic deployment with Citrix App Layering
- Lab: Part 47 – User Layers with Citrix App Layering
- Lab: Part 48 – Windows 10 and PVS with Citrix App Layering
If you have an application that you are installing in an app layer that requires it to be domain joined you need to use a domain joined platform layer as a pre-req layer. Do not just join your app layer to the domain and then remove it from the domain when you are done. That will cause issues – learned that the hard way…