Beta 4.5 Getting Dynamic Suite Composition (DSC) to work (Client Build Build

So it was late one weekend when I started to build my 4.5 test lab. The goal was to do it with every future technology we had. So I downloaded every beta I could possibly find..... Windows 2008 RC1 (x64 off course!), November SQL 2008 CTP, November Microsoft Application Virtualization.... and there were a few other bits also to add!

Anyway one delay lead to another and for the time being that's on hold but do expect the blog post on that environment and the gotcha's and resolutions I went through to get it up and working!

So I ended up quickly building a Windows 2003 with SQL 2005 SP2 and XP/Vista environment with the current client build and server

It was a really enjoyable experience, everything is up and running. I can do all the new cool features and they seem to be working well! So you should expect to see little nuggets starting to pop up!

One of the things that I was keen to get working was DSC. I wanted to see what plugin/addin I could nest into my Office 2007 suite! ......... I looked around my little office and laying on the corner of my desk in a dusty pile of CDs was a copy of TechSmiths Snagit product!

I went ahead and sequenced a fresh copy of Office 2007 on the new sequence and took advantage straight away with the Windows Update feature (when you do sequence office 2007 please follow best practice!) . Once that was completed I went straight into Sequencing Snagit 8.2.3 ....... 5 mins later and we had two packages..... both happily sitting in there own individual system guard environments.

Now let me caveat one piece......

1) When I sequenced Office I did it on a clean sequencer with no application really installed. I sequenced this to Q:\OFF2K7.001. Now reset your VPC back to the clean image

2) When I sequenced Snag It, I installed Office 2007 (which is going to be my primary application) Natively on the Operating System. This is important as if Snag It needs to add into the Office Product as an add in it may require certain API's, or registry entry's to name but a few elements! Also I installed Office to my system partition and not my Q drive for the native install.
I sequenced SnagIt to Q:\SNAGIT.001


Once my applications where completed I added Primary Application and Secondary Addin/Plugin to the content share, published the application and set the ACLs for both packages. By placing ACLs on both packages you only need to have one modified OSD for the Major app and can control who gets what add-in or front-end app through the permissions to those packages. 

Anyway I went ahead and Tested that both application streamed to me correctly and than sat there....... hmmmmm  both apps are working great but the integration into Office is not there!

For Example;


How should my OSD for my primary application actually look! Well the packages’ dependencies are defined through the primary package OSD file. In this instance I used a n XML Notepad from Microsoft (Yeahhhh). You can download it from here.

Inside OSD under the DEPENDENCIES tag, you insert a CODEBASE tag for each secondary package you want to define for the primary package. The exact path to add this tag is the following:




HREF is the property that defines the URI for the package

GUID is the package ID

SYSGUARDFILE is the property that determines the relative path to the OSGUARD.cp

MANDATORY is an optional Boolean field that determines whether the secondary package is required for the primary package to run. A package is optional by default.

A CODEBASE tag is formed for each secondary package during sequencing time. To find that, open the secondary package OSD file and at the top you will find a CODEBASE tag with the information required to define the dependency (specified below). Note that you will have to remove some unnecessary properties in the tag.

So lets get back to the example! Office 2007 (Primary) , Snagit (Secondary)

Given this definition, following is the summary of the steps to set the dependencies:

1. Open the OSD file for the secondary plugin/addin in my case SnagIt

   1: <?xml version="1.0" standalone="no"?>
   2: <SOFTPKG GUID="C2C5DB77-8714-4C7B-B2B4-EA416D039F9A" NAME="SnagIt 8" VERSION="">
   4:         <CODEBASE HREF="RTSP://" GUID="A7ACA34F-25C2-4BB2-9623-CA344C801E89" PARAMETERS="" FILENAME="SNAGIT.001\TechSmith\SnagIt 8\SnagIt32.exe" SYSGUARDFILE="SNAGIT.001\osguard.cp" SIZE="52757501"/>
   5:         <OS VALUE="Win2K"/>
   6:         <OS VALUE="Win2KSvr"/>

2. Copy the CODEBASE tag from that file

   1: <CODEBASE HREF="RTSP://" GUID="A7ACA34F-25C2-4BB2-9623-CA344C801E89" PARAMETERS="" FILENAME="SNAGIT.001\TechSmith\SnagIt 8\SnagIt32.exe" SYSGUARDFILE="SNAGIT.001\osguard.cp" SIZE="52757501"/>

3. Open the OSD file for the primary application in this case it is Microsoft Office 2007 EnterPrise

   1: <?xml version="1.0" encoding="utf-8" standalone="no"?>
   2: <SOFTPKG GUID="246FD4DA-D89B-4191-A65E-EA119D800578" NAME="Microsoft Office Word 2007" VERSION="12.0.4518.1014">
   4:     <CODEBASE HREF="RTSP://" GUID="741F7E81-7E31-499B-A719-0796A6797857" PARAMETERS="" FILENAME="MSOF2K7EE.001\Microsoft Office\Office12\WINWORD.EXE" SYSGUARDFILE="MSOF2K7EE.001\osguard.cp" SIZE="1663291041" />
   5:     <OS VALUE="Win2K" />
   6:     <OS VALUE="Win2KSvr" />
   7:     <OS VALUE="Win2KTS" />
   8:     <OS VALUE="Win2003Svr" />
   9:     <OS VALUE="Win2003TS" />
  10:     <OS VALUE="Win2008Svr" />
  11:     <OS VALUE="Win2008TS" />
  12:     <OS VALUE="WinVista" />
  13:     <OS VALUE="WinXP" />
  14:     <WORKINGDIR />
  16:       <ENVLIST />
  17:     </VIRTUALENV>
  18:     <VM VALUE="Win32">
  19:       <SUBSYSTEM VALUE="windows" />
  20:     </VM>
  22:   <DEPENDENCY>

4. After the <VIRTUALENV> tag, insert the following tag:



5. Paste the CODEBASE tag from Snagit (secondary) to the Primary

   1: <SOFTPKG GUID="246FD4DA-D89B-4191-A65E-EA119D800578" NAME="Microsoft Office Word 2007" VERSION="12.0.4518.1014">
   3:  <CODEBASE HREF="RTSP://" GUID="741F7E81-7E31-499B-A719-0796A6797857" PARAMETERS="" FILENAME="MSOF2K7EE.001\Microsoft Office\Office12\WINWORD.EXE" SYSGUARDFILE="MSOF2K7EE.001\osguard.cp" SIZE="1663291041"/>
   4:  <OS VALUE="WinVista"/>
   5:  <OS VALUE="WinXP"/>
   6:  <WORKINGDIR/>
   8:  <ENVLIST/>
  10:  <CODEBASE HREF="RTSP://" GUID="A7ACA34F-25C2-4BB2-9623-CA344C801E89" PARAMETERS="" FILENAME="SNAGIT.001\TechSmith\SnagIt 8\SnagIt32.exe" SYSGUARDFILE="SNAGIT.001\osguard.cp" SIZE="52757501"/>
  12:  </VIRTUALENV>

6. Remove any unnecessary properties and only leave the following:




d. MANDATORY   Decide if the secondary package is a mandatory package (it’s required to be launched before the primary package is launched). If it’s mandatory, add MANDATORY=”TRUE” property inside the CODEBASE tag. If it’s not mandatory, you don’t need to add anything else.

7. Close the DEPENDENCIES tag by inserting the following:


8. Job Done Test and See whether you have the two Suited.

So lets go back originally in my test environment before Dynamic suiting was set up my word 2007 application looked like this.


Things to notice is that Office has launched and I have no access to the SnagIt Group. Notice that I have no addins section on my menu in Word 2007.

Now once I give my self access permissions to the secondary addin/plugin and get a DC Refresh to take place I have the Snagit Addin ready to suite with my Office Suite.

Once I restart Word 2007 I can straight away see a difference. Notice the Addin in the menu now?


When you click on the Add-Ins Section you can now see the Snagit Addin


Lastly when I look at the Word 2007 Options and Click Add-Ins I can see the SnagIt Add-In with the addin location set to Q:\SNAGIT.001\Techsmith......... etc etc!!!!


Its a great feature but one to be used with due care and consideration! Again this is not a silver bullet solution and we need to take into consideration that the secondary addin will now be adding to the primary applications UsrVol_sftfs_v1.pkg.

Also remember that each secondary application will need to load up into the primary and this can take some time. i.e. don't go nesting 100 secondary addins (the results may be interesting :o)  )

There has been a great thread on this subject in the Technet Forums which has been good to see the discussions.

If you want to add any feedback let the team know in the Technet Forums for 4.5!!!!

Comments (13)

  1. Anonymous says:

    Over on the Virtual World blog my buddy Justin Zarb posted an awesome write-up on his latest adventures

  2. Anonymous says:

    Hey Redbull,

    Well it does depend on what your trying to DSC together :o)

    The steps have not changed much since the article and RTM. I still use this article with customers on RTM stuff!

    The RTM steps are located

    Give that a try and let us know the results!

    All the best


  3. Anonymous says:

    Fair Comment Perry! Modified in the above :o)

    Some times late nights and writing dont mix!

    All the best


  4. Anonymous says:

    Alas I know the tool :o) and if i had it I would use it too. Currently this is not being distributed. After RTM this may change but this is not confirmed…… stay tuned and as soon as I have more details I will certainly let the virtual world know!

    All the best


  5. Anonymous says:

    If you’re familiar with all the cool new features we’ve put into Microsoft Application Virtualization

  6. Anonymous says:

    Ni kanske minns om att jag skrev om den bästa nya funktionaliteten i SoftGrid 4.5 versionen (finns i

  7. Anonymous says:

    Hi, I have a question about DSC.

    If two products (A and B) have been sequenced, and product A depends on product B. Should product A has the right to open the product B folder like Q:B?



  8. Sebastien says:


    Great enhancement! But… at the IT Forum in Barcelona, Sean shown us an application to automatically create the dependencies between sequences.

    Do you know if this was just written for his demo, or will be integrated in the product? Is that small application already available?

    Thanks for the answer!


  9. redbull says:

    whether it works with 4.5RC or only with beta version

  10. redbull( says:

    i tried it with 4.5 RC

    but no positive result

    unable to launch addin’s

    any solutions????

  11. Olga Ritchie says:

    Justin, very good answer. Informative.

  12. Perry says:

    Step 4 seems to be wrong as written above. It says:

    > After the </VIRTUALENV> tag, insert the following tag

    It should say

    => After the <VIRTUALENV> tag, insert the following tag

    Notice that it goes after the open tag, not after the close tag.

  13. oofemioo Femi says:

    How did you get the SnagIt printer to work? Running SnagItPI.exe installs the SnagIt printer icon but some of the files are still missing thereby preventing printing. Registering files in the 2KXP folder and copying PrinterPortfile to the correct location doesn’t seem to be the soluton.

Skip to main content