Great news, App-V 5.1 has finally been released! It has been a little while since the announcements at Ignite but now it is here at last. Overall this release goes a long way to consolidate all the work that has been put into App-V 5.0 since its original release and sends a strong message to anyone still on 4.6 that it’s time to migrate.
Here’s the official announcement and below is an overview of all the new features! Keep scrolling for a full run down…
SequencerImproved package conversion for 4.6 to 5.x Added support for multiple scripts per event Added enhanced Package Editor abilities |
ServerModernised App-V Server Console |
ClientWindows 10 support Reduced Copy-on-Write extensions exclusions list Merged Environment Variables for Connection Groups Consolidated and simplified client event logs |
Sequencer
Improved package conversion for 4.6 to 5.x
App-V 5.1 brings about some marked improvements with the conversion tool, a feature which has had focus in releases previous to this one in an effort to improve the success rate that users can achieve when converting their legacy 4.6 packages over to the new format. 5.1 brings a range of improvements, the main two being the ability to carry across scripts from legacy packages over to the new format and the support for root drive hardcoded paths.
Script Conversion
App-V 5.1 will convert any legacy HREF 4.6 scripts over to the new format as shown below:
The 5.1 Sequencer will try and correlate events and triggers accordingly and give pretty decent feedback when it makes assumptions. For example here we are advised that the LAUNCH event as been translated into a StartVirtualEnvironment event, it also gives information about how it will treat the WAIT=TRUE in my legacy package script:
You may also notice the new switch available called -OSDsToIncludeInPackage which allows us to specify which .OSD files should be consumed into the package and User/Deployment Config XMLs, before 5.1 this granularity wasn’t available and all OSDs got pulled in.
As mentioned only HREF conversion is supported along with environment variables and registry, SCRIPTBODY is not supported:
Hardcoded Path Translation
The Q:\ drive (or whatever letter you used as a mount drive in 4.x) was an integral part of how we packaged in the legacy version of App-V, this means there is a strong possibility your 4.x packages have hardcoded paths tucked away inside its files (commonly in .ini, .conf and .xml), this is partly the reason why Microsoft always insisted the same drive letter was used as a mount across Sequencer and all clients.
Previous to 5.1 the converter never really dealt with this and would warn you after conversion:
Now with the improvements made in App-V 5.1 we will find that no warnings are given. That is because the Sequencer will pick up on the presence of these hardcoded paths and create a legacy mount drive mapping within the FilesystemMetadata.xml
By injecting the Q:\ Drive location into the root level translation, the client will know to map any requests from package processes to the mount drive into the relevant VFS location. Previously you would have something similar to this in the same file which likely would have meant your package would fail if it tried to refer to files in its own root via a hardcoded path:
Added support for multiple scripts per event
Bringing back a long awaited parity point with 4.6, 5.1 now supports multiple scripts per event. This basically works by calling a “scriptrunner.exe” as the path for your script handler. You will notice this .exe is included as part of your App-V Client install. You then simply pass -appvscript parameters in the section of your script to list out all the scripts you wish to run.
For example we might have something similar to below if we wanted run multiple scripts upon publish of our package. Notice we not only have the ability to call scripts but to also pass arguments against them and specify App-V related parameters too.
1 |
<UserScripts> |
1 |
<PublishPackage> |
1 |
<Path>ScriptRunner.exe</Path> |
1 |
<Arguments> |
1 |
-appvscript checkregistry.ps1 |
1 |
-appvscript checkprereqs.vbs –appvscriptrunnerparameters –wait –timeout=15 –rollbackonerror |
1 |
-appvscript checkerrors.bat "error.log" |
1 |
</Arguments> |
1 |
<Wait timeout="75" RollbackOnError="true"/> |
1 |
</AddPackage> |
1 |
</UserScripts> |
Added enhanced Package Editor abilities
So the familiar package editor has also had a bit of a revamp with a few key improvements:
Ability to import and export the manifest.xml
This allows you to make changes that become permanent and default within the .appv itself rather than rely on the dynamic configuration files. For example if you had a script that is required to allow your package to run and this script was required for all deployments then you could put this script into the manifest.xml and import it into the .appv. This feature is on the Advanced tab of the Package Editor.
Luckily the boys over at Virtual Engine have already updated ACE (my go to dynamic config .xml editor) to now support manifest.xml files! Check it out here.
Ability to disable Brower Helper Objects (BHOs)
This new checkbox allows you to choose not to have BHOs enabled in your package, previous to 5.1 BHOs where enabled by default with no way to change this in the package. Now for example if you want to publish a package globally but don’t want BHO integration to occur you can untick the box shown below. It will then comment out the BHO references in the manifest so they no longer apply, notice it doesn’t use a true/false switch like other integrations. If you’re wondering what BHOs actually are, then scroll half way down this post here.
File and registry management improvements
There has been a range of small improvements made to the Package Editor in terms of the way we work with files and registry. Some improvements are less noticeable like the current path being displayed as you navigate the registry, others are more noteworthy such as the addition of “find and replace” and the options to import entire registry locations or file directories. All of these features increase the usability of the package editor and should make life that little bit easier.
Server
Modernised App-V Server Console
App-V 5.0 brought forth a new web based management console built on Silverlight. In 5.1 this console has now been re-written in HTML 5. This should allow much easier development of the console going forward and also hopefully get rid of some of those annoying window scaling issues seen in the previous console.
Other improvements to the console include specific URLs per page which mean it is easy to bookmark or share links to specific pages or packages:
Auto resizing of console for those of you eager to use the console on smaller screens such as mobile devices is also accommodated:
Also a new notification centre that is less distracting and less tedious than the last with its overlapping notifications that needed to be individually dismissed. The console allows you to just click anywhere on the screen to ignore or dismiss all notifications in a single action if you want to clean up:
Client
Windows 10 support
As you would expect with the recent release of Windows 10, it is now also supported with this new release of App-V.
Reduced Copy-on-Write extensions exclusions list
As some of you will remember App-V 5.0 had a long list of CoW exclusions (file types that cannot be written into the VE while it is running), you can refer to this here. 5.1 has now shrunk this list of 59 file types down to the following:
- .exe
- .dll
- .ocx
- .com
Merged Environment Variables for Connection Groups
Probably one of the more ‘under the hood’ and less visible changes, packages in a connection group will now merge their respective environment variables. In previous releases only the top level package of a connection group registered environment variables.
Consolidated and simplified client event logs
A great step forward to troubleshooting, anyone who has had to do beyond basic troubleshooting of the App-V Client will be familiar with the App-V Debug logs, a long list of an additional 32 nodes containing logs which could be enabled. The problem was knowing which log to enable. Microsoft have now rolled up these logs in a more simplified model which retains the three Admin, Operational and Virtual Applications nodes but has consolidated the debug logs into five additional logs.