Beta 4.5 Getting Dynamic Suite Composition (DSC) to work (Client Build 4.5.0.608/Server Build 4.5.0.606)

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 4.5.0.608 build and server 4.5.0.606.

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

Key piece ADD THE PRIMARY APPLICATION TO YOUR SEQUENCER BEFORE SEQUENCING THE SECONDARY PLUG IN/ADD IN!!!!!!! (if I could draw pixies around this point I would!)

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;

image

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:

xmleditor

image

<CODEBASE HREF=””, GUID=””, SYSGUARDFILE=””, SIZE=”” [, MANDATORY=””]/>

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="8.2.3.14">
    3:     <IMPLEMENTATION>
    4:         <CODEBASE HREF="RTSP://stream.mdopdemo.net:554/SNAGIT.001/SNAGIT.001.sft" 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://stream.mdopdemo.net:554/SNAGIT.001/SNAGIT.001.sft" 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">
    3:   <IMPLEMENTATION>
    4:     <CODEBASE HREF="RTSP://stream.mdopdemo.net:554/MSOF2K7EE.001/MSOF2K7EE.001.sft" 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 />
   15:     <VIRTUALENV TERMINATECHILDREN="FALSE">
   16:       <ENVLIST />
   17:     </VIRTUALENV>
   18:     <VM VALUE="Win32">
   19:       <SUBSYSTEM VALUE="windows" />
   20:     </VM>
   21:   </IMPLEMENTATION>
   22:   <DEPENDENCY>
   23:     <CLIENTVERSION VERSION="4.5.0.0" />

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

<DEPENDENCIES>

xmleditor

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">
    2: <IMPLEMENTATION>
    3:  <CODEBASE HREF="RTSP://stream.mdopdemo.net:554/MSOF2K7EE.001/MSOF2K7EE.001.sft" 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/>
    7: <VIRTUALENV TERMINATECHILDREN="FALSE">
    8:  <ENVLIST/>
    9: <DEPENDENCIES>
   10:  <CODEBASE HREF="RTSP://stream.mdopdemo.net:554/SNAGIT.001/SNAGIT.001.sft" GUID="A7ACA34F-25C2-4BB2-9623-CA344C801E89" PARAMETERS="" FILENAME="SNAGIT.001\TechSmith\SnagIt 8\SnagIt32.exe" SYSGUARDFILE="SNAGIT.001\osguard.cp" SIZE="52757501"/>
   11:  </DEPENDENCIES>
   12:  </VIRTUALENV>

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

a. HREF

b. GUID

c. SYSGUARDFILE

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:

</DEPENDENCIES>

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.

image

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?

DSC1

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

DSC2

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!!!!

DSC3

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!!!!