A. Creating a dependency between applications is very easy.

First, open the OSD file of the virtualized application that will be the dependee (for example JRE or a plug-in). In the OSD file, copy its CODEBASE line, e.g.

<CODEBASE HREF="RTSP://savdalappv01:554/jre6.u18/JRE_6u18.sft" GUID="DA3EBD7A-A46F-4914-8C85-EE156FCE56F7" PARAMETERS="" FILENAME="jre6.u18\bin\javaw.exe" SYSGUARDFILE="jre6.u18\osguard.cp" SIZE="93476542"/>

Now open the OSD file of the virtualized application that will be the depender (such as a Java application). In the VIRTUALENV section, add a <DEPENDENCIES> section and paste the codebase information from the dependee OSD file. For example,

<VIRTUALENV TERMINATECHILDREN="FALSE"><br>   <DEPENDENCIES><br>     <CODEBASE HREF="RTSP://savdalappv01:554/jre6.u18/JRE_6u18.sft" GUID="DA3EBD7A-A46F-4914-8C85-EE156FCE56F7" PARAMETERS="" FILENAME="jre6.u18\bin\javaw.exe" SYSGUARDFILE="jre6.u18\osguard.cp" SIZE="93476542" MANDATORY="TRUE" /><br>   </DEPENDENCIES><br>   <ENVLIST /><br> </VIRTUALENV>

Note that I added a MANDATORY="TRUE" value to the CODEBASE string, which says the dependee application must be available to launch the application. You can set this value to FALSE if the dependee isn't required for the application to function.

Save the file and refresh the clients so they get the new OSD file and the dependency will be in place.

While editing the OSD file isn't a huge pain, there's a resource kit tool available from Microsoft's site that provides a GUI that basically lets you just drag and drop dependencies. One word of warning—the interface needs a little bit of work, because it only shows the first part of the file name, which is the same for every application as you can see. It might take a little bit of guesswork and trial and error to find the right application, but if you hover over the names it will show the full path.