A couple additional tips and tricks for authoring the MSI Media table for a setup
Since I typed up my first list of tips and tricks for the Media table, volume labels, multi-disk MSI setups, etc last night, I thought of a few additional things that I forgot to mention or forgot the details of and needed to research a little bit more. So here is a list of a little more random information about the Media table:
- When Windows Installer prompts the user to insert a disk, it uses the value in the DiskPrompt column of the Media table for the file that it is searching for. This value can be translated into other languages to support non-English languages for your setup packages. If desired, you can also use property values in the DiskPrompt column so that if you need to translate the same string multiple times, you can author all of your media table entries to refer to a single property value and then translate the property value once.
- If you have a multi-disk MSI setup that you want to ship on a DVD instead of on multiple CDs, you cannot simply copy the contents of each CD to a folder and burn a DVD. You will have to modify the Media table of your MSI prior to burning it to DVD. Each VolumeLabel entry that previously existed to support CD layouts needs to be changed to be either blank or the same value as you intend to use for the volume label for the DVD that you burn. For example, in Visual Studio, we shipped the Enterprise Architect CDs with volume labels VSENARD1 and VSENARD2, and then updated the MSI for the DVD so that the volume label was VSENARD1 for all of the files.
- If you want to figure out what disk you should expect any given file to appear on when you burn media for your product, you can look up the file in the File table, take not of the value in the Sequence column, and then cross-reference the LastSequence column of the Media table.
- There is a bug where if you install a multi-disk setup on a computer that has multiple CD/DVD drives and insert one of the disks in one drive and another disk in one of the other drives, you will not be prompted to swap disks when setup needs to install files located on disk 2. Instead of a standard disk swap dialog, you will see a 1308 "file not found" error in this scenario. Putting the next disk into th same drive as disk 1 and pressing retry will allow setup to complete. We ended up seeing several reports of this when working on VS 2003 because it shipped on 2 disks and some customers thought they could insert both disks simultaneously and have setup complete without any further intervention.