Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSI improvements #64

Draft
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

chrullrich
Copy link
Contributor

@chrullrich chrullrich commented Oct 5, 2024

This is the yield from ~8 hours of poring over the code. This is mostly janitorial stuff, but I'm by no means done; there is more to come. It would be great if you could look it over and tell me whether you are comfortable with it.

My claim in #57 that the component rules violation was the reason for the installation path not changing between versions was wrong. This is in fact an intentional behavior of Windows Installer as long as ODBC drivers are installed using the built-in support, i.e. the ODBCDriver table. In that case, the SetODBCFolders standard action overrides the installation path to maintain the driver in the same location.

Instead of externally generating it and using it explicitly.
This prevents upgrades from leaving files from the previous version
behind that are not in the new version.
Use the ODBCDriver element only, without additional Registry settings.
This works, although it does not solve the file name issue and therefore
still requires removing the short file names from the File table.

It also works for installing the x86 driver on an x64 system. Whether it
works on an x86 system remains unknown.
Tested on Windows 10 x86; the driver installs correctly and works
at first glance (in Access, to be precise). Registry and file system
look good.

The comment saying it "probably would be safe" is probably correct.
According to docs, using Package/@platform "is discouraged". The -arch
option also provides the default bitness for components, making the
Component/@win64 attribute unnecessary in single-architecture packages.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant