Aaron Stebner's WebLog

Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio

Tips and tricks for authoring the MSI Media table for a setup

Tips and tricks for authoring the MSI Media table for a setup

  • Comments 6

Since Visual Studio is one of the few multi-disk MSI packages that I am aware of, our team has had more experience using the Media table and run into more problems while trying to release builds on CD and DVD than any other team I know of within Microsoft.  The Media table is documented in the Windows Installer MSDN documentation (this is a good starting point).  Here is a list of some random information (and a couple of bugs in our products) that we discovered about the Media table during the process of shipping VS .NET 2002 and 2003 and the .NET Framework 1.0 and 1.1:

  1. The value listed in the VolumeLabel column of the table much match the volume label of the physical disk being installed from if the product is being installed from a removable media drive.  If the physical disk has a different volume label than what is listed in the Media table for the file that the MSI is attempting to install, you will get a dialog asking you to swap disks.
  2. The documentation shows that you can leave the VolumeLabel column blank, but if you do this, make sure that your entire setup package fits on a single disk or else your users will not receive proper disk swap notifications and the installation will fail because Windows Installer won't be able to find files it needs to install.
  3. Windows Installer treats local CD and DVD drives as removable media, and uses the values in the VolumeLabel column of the Media table if installation happens from one of those locations.
  4. Windows Installer does not treat a shared network drive that maps to a CD/DVD drive as a removable drive, and if you install from such a shared drive you will receive a 1308 (file not found) error for the first file that is expected to appear on disk 2.  When that happens you will have to swap disks on the machine that has its CD/DVD drive shared out and then press retry on the 1308 error dialog on the machine you are installing on.
  5. If you provide a volume label for one of the entries in the Media table of an MSI and there are multiple entries, then MSI will check the volume label to make sure it matches even for an installation that does not span multiple disks.  We ran into this for the .NET Framework - the product is small enough to fit on a single disk, but we had several embedded CAB files (which each require their own Media table entry) and a set of files in an external cab that we listed with the volume label URTSTDD1.  When installing from the self-extracting dotnetfx.exe package, setup always copies itself to the local hard drive (in a folder under %temp%) so MSI never considered that to be a removable media installation.  When one of our partners tried to extract the contents of dotnetfx.exe and ship this on their installation media and install by calling netfx.msi directly, they started getting prompted to swap disks.  We have fixed this in the .NET Framework 2.0 by calculating in our build process that the .NET Framework is less than the size of a burned CD and leaving the VolumeLabel columns in the Media table blank for all entries.
  6. Windows Installer does not support CD/DVD jukebox installation scenarios.  Once you start installing from a specific CD/DVD drive letter, you will have to swap disks on that drive to complete installation even if you have other CD/DVD drives on your machine.

 

  • Since I typed up my first list of tips and tricks for the Media table, volume labels, multi-disk MSI...
  • Is there any workaround for the .Net 1.1 issue? We need to deploy .Net 1.1 using netfx.msi. I know it's possibly to edit netfx.msi using Orca and take out the offending VolumeLabel, but I don't suppose it's legal to modify your software. Is there any way you guys can do this for us instead?
  • Hi Thusha - Is it required that you be able to deploy .NET 1.1 from a CD/DVD using netfx.msi directly? The CD/DVD scenario is the only one broken by this media table bug.

    If this is truly a requirement, the best way to workaround this issue is to create a transform to update the media table in the MSI. If you have any questions or concerns please contact me directly at aaronste@microsoft.com and I'll be happy to advise.
  • Question:
    I am trying to create an integrated installation DVD that includes Visual Studio 2005 as well...
  • I am using wix, i have created disk1.cab and disk2.cab files .total size of 2 cab files are less than 2 gb.

    i need to create a single iso file without prompting the second disk to insert.

    please reply the possible scenarios to santhosh33kumar@gmaikl.com

  • Hi Santhoshkumr - You'll need to use some kind of self-extracting package if you need to distribute multiple files with your setup program.  WinZip supports this type of functionality and there are other solutions available for this type of thing, or you could create your own solution.

Page 1 of 1 (6 items)
Leave a Comment
  • Please add 6 and 1 and type the answer here:
  • Post