When speaking of the Windows Installer (MSI) engine, the prompt for valid source media, also seen as 'error 1706,' is one of the more frustrating limitations of the MSI version 2 (and while improved behaviour is seen with 3.x, it is still an issue). Although the behaviour is most often seen when with patches and minor upgrades, it is not unusual to see it when 'repairing' as well.
There are several resources which would offer further information on this topic:
Preventing a Patch from Requiring Access to the Original Installation Source -
http://msdn.microsoft.com/library/en-us ... source.asp
These topics from the MSI FAQ page linked below
+ How can I prevent my patch from requiring the source?
+ When will patches require the original source?
http://www.microsoft.com/windows2000/co ... si_faq.asp
http://www.microsoft.com/windowsserver2 ... i_faq.mspx
How to Apply a Patch Without Source -
http://www.installsite.org/pages/en/msi/updates.htm
FIX: Windows Installer Must Have Original Source Files When You Apply a Patch -
http://support.microsoft.com/default.as ... US;Q268800
"Error 1706" error message when you use a feature that is set to Installed on First Use -
http://support.microsoft.com/default.as ... US;Q258847
PRB: Error 1706 "No Valid Source Could Be Found" When Installing MSI File from Removable Media -
http://support.microsoft.com/default.as ... -us;299803
You receive the "Error 1706" error message when you try to start Money -
http://support.microsoft.com/default.as ... -us;873279
Managing Installation Sources -
http://msdn.microsoft.com/library/en-us ... ources.asp
How to programmatically update the source list for an installed Windows Installer package -
http://support.microsoft.com/kb/297168/EN-US/
To help prevent this message you can utilize these features of MSI and the installer:
+ for 'web' media types or a compressed build, cache the installation package
+ do not build a release with a single executable file (instead build an uncompressed release)
+ patch whole files instead of only the parts that have changed (the so-called binary update)
+ generate file hash values
+ condition the ResolveSource standard MSI action to not execute during the patch process
+ use the Feature setting of "Favor Local"
Assuming that the request is being made to install a file from the original package the possible causes could be that:
1) The file size is wrong in the MSI package (as seen in MsiFileHash)
... - In the case of a file size of 0, zero, it might help to remove and then readd the files to the project to populate the field with the correct value
2) The file version uses companion files
3) The file that exists on the target machine has been updated. For non-versioned files this could mean that the application stored some user data in a text file.
4) The file has an incorrect version in the file table.
Generating a verbose log (msiexec /i <path>\\myinstall.msi /l*v c:\\mylog.log) of the installation process is the best way of narrowing down the issue.