Recently I was testing a sequence in standalone mode and needed to link it with another package via DSC. I edited the .OSD files in the normal manner and installed both packages.
To make sure DSC was working I launched a shortcut and opened the App-V client GUI. The parent package was shown as In Use(100%), but the dependency was still listed as Idle(0%), so it was clear that DSC linking was not working. Next I looked in the OSD Cache “C:\ProgramData\Microsoft\Application Virtualization Client\SoftGrid Client\OSD Cache” and noticed when I opened the .OSD file that it was an old version without the DSC information!
It turns out that App-V stores a copy of the .OSD file(s) in an embedded #Package.cab file (also the .ICO icon files and the .XML Manifest file) and it uses these instead of the one(s) in the folder. The good news is that this is fairly eady to fix using the free InstEd tool (InstEd download page).
Open the .MSI with Insted, then go to the Media table and right click on the row containing the .CAB file as shown:
The highlighted options for working with cabs are described here.
If you select Show ddf it will give you an indication if it can find the files it needs to do the rebuild –
e.g. “Failed to find file key 00000004.osd at location:
I had to create the “Package” folder then copy the files into it from MyPackage. If InstEd can locate all the files it needs to generate the cab, selecting this option shows you the MakeCab Directive file that it will generate. You are now ready to select the Rebuild selected CABs option and complete the fix.
I know APP-V 4.6 and .OSD files are on the way out, but I think they will be with us for a while yet and this technique is useful for any .MSI with an embedded .cab file you wish to update.