Hello, folks!

I have been following Nick's excellent guide (for v7.2) to configure custom default user prefs for QuickTime:
http://www.appdeploy.com/messageboards/fb.asp?m=28490

After reading through the entire thread and working through some trial and error, I get stuck with my install unable to find the added user configuration files:
Product: QuickTime -- Error 1334. The file 'QTPlayerSession.xml' cannot be installed because the file cannot be found in cabinet file 'QuickTime.cab'. This could indicate a network error, an error reading from the CD-ROM, or a problem with this package.

I have followed the instructions regarding adding the binary stream with WiStream.vbs and added the corresponding Media table entry according to the aforementioned post. The VBS script does not provide any feedback as to whether it did its thing or not. I get no errors so I assume no news is good news. ;) However, I also do not see any changes made to the msi after streaming the cab file into it (no additional entries in the Binary table.) I am unfamiliar with this part of the msi so I do not know what to look for. The msi file size is slightly bigger so it looks like the cab is added somewhere but the install still doesn't know how to get to it.

I saved all of these changes to an MST file, which is applied at runtime. The only modification to the msi itself was streaming-in the config.cab file.

I realize this is an old and evolved post but I am hoping some of the more experienced folks are willing to revisit this unruly package and give me a hand. I started a new thread so that changes meant for this version can be found separately.

Any help is appreciated. Thanks in advance!
-Adam
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

0
Restore (or download) the original MSI: it's a Reall Bad Idea to futz with vendor-supplied MSIs. Instead, simply add the XML file to your transform. If you use an authoring tool like Wise or InstallShield, it will add the file to an external CAB which you can then distribute with the MSI and your MST. If using Orca/InstEdit, you'll need to add the relevant entries to the File, Component, FeatureComponent and Media tables yourself.
Answered 02/23/2010 by: VBScab
Red Belt

Please log in to comment
0
I really didn't want to mess with the msi itself but the info in the OP was all I had to go on... I tried to add the cab to the Media table and use it externally but I get the same message. I am not sure I am doing this correctly. The file (and two others that are associated with prefs) are added to the apropriate File, Component, FeatureComponent tables already. What could I be missing in terms of getting these files from an external cab?

Currently, the Media table looks like this (as exported from Orca) but I get the same message about not finding the file in QuickTime.cab:

DiskId LastSequence DiskPrompt Cabinet VolumeLabel Source
i2 i4 L64 S255 S32 S72
Media DiskId
1 671 #QuickTime.cab
2 674 2 config.cab DISK2

The second record is the one I added in an attempt to use an external cab file.

Thanks,
Adam
Answered 02/23/2010 by: adamj777
Senior Yellow Belt

Please log in to comment
0
how did you create the cab file? The files in there have to be added in the same sequence as they are in the file table

eg in your file table you have the extra files

file1 672
file2 673
file3 674

you would have to have created the cab file in that order too
eg with cabarc - cabarc n config.cab file1 file2 file3
Answered 02/23/2010 by: timmsie
Fourth Degree Brown Belt

Please log in to comment
0
Ah yes! I had become a bit myopic after staring at this thing for days. :)

To answer your question, timmsie, I used the config.ddf and makecab method described in the OP to create my cab. And the files were added in the correct order. The problem turned out to be that, since the OP was for v7.2, the sequence numbers were off. I forgot to adjust them for the new version. When I sorted by sequence number, I saw my added files show up before the end of the original sequence with duplicate sequence numbers. I updated the three file entries with appropriate sequence numbers and I now get a successful install.

The AS component does not seem to be getting the prefs squared away, however. It runs properly but the settings do not quite take. I think the paths have changed as to where Apple puts these pref files (since v7.2.) I may need to adjust further but it looks like I am on the right path. I will post my alterations in this thread when I get it fully working.

Thank you both for your help and direction!
Answered 02/23/2010 by: adamj777
Senior Yellow Belt

Please log in to comment
2
Okay, here is the complete list of changes that were saved to an MST to make this work with QuickTime v7.6.5. Note that I did not add the bit that addresses AS for roaming profiles. The following is initially quoted from nheim's post noted at the top of this thread. I was originally marking my changes but it started to look a little confusing so I just slipstreamed them into the original post without footnotes. A big thank you to nheim and all the others who contributed to the original post which proved invaluable to my efforts. I really learned a lot about MSI/MST customization from this project. :)

[edit] Found a couple of typos. Also changed the order of a couple of actions to make the process more smooth and follow-able. :)

----Begin---
We will create a new feature for the user settings, which will be installed by self healing or Active Setup into each user profile.
The 3 files for the settings have to placed into different directories on Vista and XP/W2k
Directories for 'com.apple.QuickTime.plist'
Vista: C:\ProgramData\Apple Computer\QuickTime\
XP: C:\Documents and Settings\All Users\Application Data\Apple Computer\<QuickTime\

Directories for 'QTPlayerSession.xml'
Vista: %USERPROFILE\AppData\Local\Apple Computer\QuickTime\
XP: %USERPROFILE\Application Data\Apple Computer\QuickTime\

Directories for 'QuickTime.qtp'
Vista: %USERPROFILE\AppData\LocalLow\Apple Computer\QuickTime\
XP: %USERPROFILE\Local Settings\Application Data\Apple Computer\QuickTime\

To generate the configuration files, Quicktime has to be installed straight forward.
After that, start Quicktime and configure the settings you need.
Like: Disable Update, Register the Pro version, Disable the content guide at startup and so on.
This settings will be stored like this:
QTPlayerSession.xml (Basic settings)
com.apple.QuickTime.plist (Username/Serial#)
QuickTime.qtp (Disable Update + generic settings)

Harvest this files and copy them to a directory.
Make a file called 'config.ddf' in it and copy the following lines into it:
----config.ddf begins here-------
.Set CabinetName1=config.cab
.Set DiskDirectoryTemplate=.
.Set CompressionType=MSZIP
.Set Compress=ON
.Set Cabinet=ON
com.apple.QuickTime.plist com.apple.QuickTime.plist
QTPlayerSession.xml QTPlayerSession.xml
QuickTime.qtp QuickTime.qtp
----config.ddf ends here-------

Now generate the 'config.cab':
makecab /f config.ddf

Open the QuickTime.msi in Orca
In Orca, select Transform->New Transform to begin authoring a new transform with changes to this MSI

We don't want this files being loaded from the source-cabinet, if a AS-install or self healing in a profile occurs.
The solution is to use 'DuplicateFile' action for this purpose.
During the main installation process, we install this files into a folder in the programs directory.
The 'DuplicateFile' action is then used to copy this files to their final destination.

Nessecary steps:
Insert new feature 'UserSettings' as top level feature.
Add this line to the feature table:
UserSettings UserSettings 1 1 16
change this line in the feature table:
QuickTimeEssentials UserSettings QuickTime Essentials 2 1 INSTALLDIR 16

Add this lines to the Component table:
com.apple.QuickTime.plist {40F04B7A-61DB-4590-821D-1237913B7345} QUICKTIMECOMMONAPPDATAFOLDER 0 com.apple.QuickTime.plist
_User {BE32CBB8-9113-4F0F-A558-D50E56AA1612} UserSet 0 QTPlayerSession.xml
UserSettingsRepair {758895DA-A013-4AC1-99D3-6027960DDD94} QuickTime 4 VersionNT < 600 RegUser1
UserSettingsRepairVista {F7570262-0BE0-4AC6-8903-9A1CC6430813} QuickTime 4 VersionNT >= 600 RegUser1Vista

Add this lines to the FeatureComponents table:
QuickTimeEssentials _User
UserSettings UserSettingsRepair
UserSettings UserSettingsRepairVista

Add this lines to the Directory table for the .qtp/.xml files on Vista:
AppData CurrentUserFolder AppData
Local AppData Local
Local_Apple_Comp Local APPLEC~2|Apple Computer
Local_Apple_Comp_QuickTime Local_Apple_Comp QUICKT~2|QuickTime
LocalLow AppData LocalLow
LL_Apple_Comp LocalLow APPLEC~2|Apple Computer
LL_Apple_Comp_QuickTime LL_Apple_Comp QUICKT~2|QuickTime

Add this lines to the Directory table for the .qtp/.xml files on XP:
Apple_Computer AppDataFolder APPLEC~2|Apple Computer
QuickTime Apple_Computer QUICKT~3|QuickTime
LocalSettings CurrentUserFolder LOCSET~1|Local Settings
LS_AppData LocalSettings APPLIC~1|Application Data
LS_Apple_Comp LS_AppData APPLEC~2|Apple Computer
LS_Apple_Comp_QuickTime LS_Apple_Comp QUICKT~2|QuickTime

Add this lines to the Directory table for the .plist file:
APPLECOMMONAPPDATAFOLDER CommonAppDataFolder APPLEC~1|Apple Computer
QUICKTIMECOMMONAPPDATAFOLDER APPLECOMMONAPPDATAFOLDER QUICKT~1|QuickTime

Add this line to the Directory table for the .qtp/.xml DuplicateFile:
UserSet INSTALLDIR UserSet

Change this line in the InstallExecuteSequence and InstallUISequence tables:
Set_CurrentUserFolder %USERPROFILE 907

To generate the configuration files, Quicktime has to be installed straight forward.
After that, start Quicktime and configure the settings you need.
Like: Disable Update, Register the Pro version, Disable the content guide at startup and so on.
This settings will be stored like this:
QTPlayerSession.xml (Basic settings)
com.apple.QuickTime.plist (Username/Serial#)
QuickTime.qtp (Disable Update + generic settings)

Add this line to the Media table to include the external cab:
2 674 2 config.cab DISK2

Add these lines to the MoveFile table so that config.cab is copied to the install cache folder:
(replace "this.mst" with the name of the mst you will export these settings to)
config.cab QuickTimeInstallerCache config.cab SourceDir INSTALLERCACHE 0
this.mst QuickTimeInstallerCache this.mst SourceDir INSTALLERCACHE 0

Add these lines to the RemoveFile table so that config.cab is removed properly:
(replace "this.mst" with the name of the mst you will export these settings to)
config.cab QuickTimeInstallerCache config.cab INSTALLERCACHE 2
this.mst QuickTimeInstallerCache this.mst INSTALLERCACHE 2

Add these lines to the Registry table:
(replace "this.mst" with the name of the mst you will export these settings to)
RegUser1 1 SOFTWARE\Apple Computer, Inc.\QuickTime UserSettingsInstalled 1 UserSettingsRepair
RegUser1Vista 1 SOFTWARE\Apple Computer, Inc.\QuickTime UserSettingsInstalled 1 UserSettingsRepairVista
RegHKLM3 2 SOFTWARE\Microsoft\Active Setup\Installed Components\[ProductCode] [ProductName] User Setup QuickTime.qts
RegHKLM2 2 SOFTWARE\Microsoft\Active Setup\Installed Components\[ProductCode] Version 7,6,5 QuickTime.qts
RegHKLM1 2 SOFTWARE\Microsoft\Active Setup\Installed Components\[ProductCode] Stubpath msiexec /i [ProductCode] TRANSFORMS=this.mst REINSTALL=UserSettings REINSTALLMODE=up /qn QuickTime.qts

Add this lines to the File table (we will be updating file sizes later):
com.apple.QuickTime.plist com.apple.QuickTime.plist COMAPP~1.PLI|com.apple.QuickTime.plist 498 0 672
QTPlayerSession.xml _User QTPLAY~1.XML|QTPlayerSession.xml 1594 0 673
QuickTime.qtp _User QUICKT~1.QTP|QuickTime.qtp 12805 0 674

Add these lines to the DuplicateFile table:
DupFile1 UserSettingsRepair QTPlayerSession.xml QuickTime
DupFile2 UserSettingsRepair QuickTime.qtp LS_Apple_Comp_QuickTime
DupFile11 UserSettingsRepairVista QTPlayerSession.xml Local_Apple_Comp_QuickTime
DupFile12 UserSettingsRepairVista QuickTime.qtp LL_Apple_Comp_QuickTime

The new files are unversioned. Therefore we need to generate entries in the 'MsiFileHash' table for this files.
See: http://blogs.msdn.com/astebner/archive/2005/08/30/458295.aspx
Make a copy of the 'Quicktime.msi' file and name it '1.msi'.
Load 1.msi into ORCA and sort the file table after the sequence.
Delete all lines, but the last three we added.
Save it.
Make sure 1.msi and the 3 config files are present in the working directory.
Update 1.msi with this command:
cscript WiFilVer.vbs 1.msi /U /H
Now, 1.msi should contain update Filesizes and Hashes.
Copy the entries over to your MST

Select Transform->Generate Transform to export these changes to an MST file. (make sure it is the same filename as the one you have used in entries above.)

Note: All the scripts and ORCA are part of the Installer SDK. Makecab is part of XP and Vista.
If you copy this post to Notepad, search for ' ' (4 spaces) and replace them with a tab.
Then you should be able to paste the lines into ORCA with Ctrl-Shift-V
Answered 02/26/2010 by: adamj777
Senior Yellow Belt

Please log in to comment
0
Hi Adam,
excellent work!
I didn't check this in the last 2 or 3 versions: Is this issue not a problem anymore: http://www.appdeploy.com/messageboards/fb.asp?m=30536
If it still is, let me know. We generated a quite simple solution for that.
Regards, Nick
Answered 03/05/2010 by: nheim
Tenth Degree Black Belt

Please log in to comment
0
That would explain why some of my earlier tests resulted in mixed results... In my case, the situation seemed to have corrected itself when I included the transforms and cab in the INSTALLERCACHE copy commands and the TRANSFORMS= property in the AS line. Perhaps this was another way to address the problem you describe?

...Now I am suspicious that maybe not all of the machines adjusted to the desired settings. =O I will take a look and see. Thanks, Nick!
Answered 03/08/2010 by: adamj777
Senior Yellow Belt

Please log in to comment
0

Follow below link for packaging latest version of Quicktime on Windows 7

http://msiworld.blogspot.com.au/2012/06/re-packaging-apple-quicktime-7728056.html

Answered 06/14/2012 by: piyushnasa
Red Belt

Please log in to comment
Answer this question or Comment on this question for clarity