Without this line any .msi that Athanasius built on his machine and
tried to install in place of an upstream .msi would install files along
side it resulting in a thoroughly broken install.
This was tracked down using:
msiexec /i "EDMarketConnector_win_343.msi" /L*vx installer-upstream343_to_py3-343.log
and then noticing the following in the log file:
FindRelatedProducts: current install is per-user. Related install for product '{69825809-42A3-4FFD-8CDD-977AA84FF94D}' is per-machine. Skipping...
Note that Athanasius uses a 'Limited' Windows 10 Home account, and was
getting UAC prompts no matter which .msi was installed. They all also
installed into "C:\Program Files (x86)\EDMarketConnector\".
The remaining puzzle is why Otis' .msi files install per-machine by
default in this environment, or why Athanasius' install per-user without
this extra stanza.
*) There's a bug in py2exe meaning sqlite3.dll doesn't get pulled in
by listing it in packages. So we fudge it, assuming it's in
<sys.base_prefix>/DLLs/sqlite3.dll (which is the case for Python 3.2
32-bit on Windows).
Bug report filed:
<https://github.com/albertosottile/py2exe/issues/23>
*) Adds sqlite3.dll back into .wxs file
I'd only removed this due to accidentally using "zipfile=None" in the
setup.py previously. So of course I had no library.zip and took it out
of .wxs to suppress file not found errors.
But without this python won't find the necessary files.
Since VS 2015 (either 140 or 141) Windows 10 should rely on the OS to
install VC runtime. For Windows 8.1 and earlier:
2. If you build software designed for use on Windows operating
systems where the Universal CRT is not guaranteed to be
installed (i.e., Windows 8.1 and below), your software will
need to depend on the above mentioned Windows Update packages
to install the Universal CRT.
<https://devblogs.microsoft.com/cppblog/introducing-the-universal-crt/>
1) Those with specific GUIDs only have them for historical reasons.
2) They need to keep the same GUID, else the installer will be
unhappy.
3) New files should use "*" for a path-based GUID.