Deploying ThinApps with the help of VMware Horizon Workspace Application Manager is a great method, but what about updating? Horizon supports updating ThinApp packages and this blog post will walk you through one method of doing that.
This blog post was initially created for Horizon Application Manager. The same principles apply for Horizon Workspace.
When it comes to creating an Horizon update package there is two package.ini parameters of interest.
The AppID is used to identify the package internally in Horizon. VersionID is used to specify package version. In order for Horizon to identify and automatically publish an updated version of a package the new package must contain the original package’s AppID and a VersionID higher than the original package.
So how do I get the current AppID from my deployed package? Unfortunately today you cannot extract that information from the Horizon Admin interface. There’s a UUID listed in the web interface but this is another identification ID and is not the one we need. This KB article discusses a couple different methods on how to extract the correct ID: http://kb.vmware.com/kb/2030248. This blog post will focus on one specific method using relink.exe (more relink.exe and Horizon info can be found here: http://kb.vmware.com/kb/2021928).
If you run relink.exe –h on a package that is already Horizon enabled, relink.exe will reuse the existing AppID in the package, i.e. keeping the original AppID. When you run relink.exe –h it will show you the package’s AppID. We will use this to our advantage.
Using relink.exe –h VersionID + will not only reuse existing AppID it will increment the VersionID automatically, creating an update package. This is all good but most of the times you are looking for creating an update using a completely new project folder.
Let’s have a look how we can go about using relink.exe to extract the AppID and then implement it in our new project folder.
In my original project folder's package.ini I've activated Horizon manageability.
I upload the original package to my Horizon ThinApp repository, making sure to place it in a folder on my repository share. Folder is called 7-zip.
Once my ThinApp repository been synchronized my original version is available in the Horizon Admin interface. Please note it's identified as version 1.0. Now I can entitle users to the ThinApp package.
Next is to create an updated version of my 7-zip package.
First I run relink.exe -h on my original package. As you can see in the screenshot above relink.exe shows the existing AppID when doing so. Copy this AppID.
I paste in the original package's AppID into my new version's package.ini file. I also specify VersionID=2 (must be higher than published version).
I upload my new version into my ThinApp repository making sure I create a new folder for it. I use the folder name 7-zip New in this example. The original package should be left untouched at this point.
Once synched with my ThinApp repository, Horizon Workspace / Application Manager automatically recognizes the new version of my 7-zip package and version 2.0 is now the active one. If you are using streaming deployment, version 2.0 will be used next time the user launches the package. If you are using local deployment, version 2.0 will automatically be copied down to your clients.