Using msi engine (newer than 3) on Windows (XP+, 7, 2k3):
Is there a way to find the already installed product which installed some file, like on Linux using rpm or deb package managers?
Linux (with deb):
$ apt-file search autoexpect
expect-dev: usr/share/doc/expect-dev/examples/autoexpect.1.gz
expect-dev: usr/share/doc/expect-dev/examples/autoexpect.gz
expect-tcl8.3: usr/share/doc/expect-tcl8.3/examples/autoexpect
expect-tcl8.3: usr/share/doc/expect-tcl8.3/examples/autoexpect.1
No, this is not possible. Windows Installer handles resources through components. It doesn’t know about actual files or registry entries.
To determine if a specific component is installed you can use the MsiGetComponentState function.