Wednesday, July 01, 2015

AppV5 - Be mindful of application integrations

When you sequence an application in AppV5 there are special keys that will be 'integrated natively' into your system.  These keys are HKLM\Software\Classes.  There are numerous things that can be integrated and these include things like File Associations or, even worse, libraries.  I believe a 'best practice' should be to make your sequencer and target platform as close as possible by installing the same software on both if you can.  For example, for all the Visual C++ native runtime libraries on your target device have that same software on your sequencer too.  If they differ than the natively installed package will be usurped by a AppV5 package's deployment.

AppV5 Package has usurped a natively installed control

The differences in the two files


This can cause issues if you are not careful about the deployments of your AppV packages as well as Windows will now natively use some libraries that may have security concerns.  This can also cause some issues if poorly written applications have specific version requirements and if multiple packages are installed with overlapping files/keys, it appears the last loaded package wins.

In one particular example I made an 'Internet Explorer' package that changed the registry keys within IE so it would identify itself as IE 6.  Doing this resulted in the http key being changed as well:


This resulted in every programatic launch of a URL to launch iexplore.exe within a different AppV bubble.  This was unexpected as I do Internet Explorer customizations within my packages so that when you launch IE you have the IE customizations for that app all with you.  This one package caused issues as http launches to went into this package as opposed to the package you were in when you launched it.

So, if you have a machine that loads multiple packages, be aware of these potential issues.

No comments: