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

Installer: Improve dependency handling #322

Open
Rondom opened this issue Aug 24, 2016 · 4 comments
Open

Installer: Improve dependency handling #322

Rondom opened this issue Aug 24, 2016 · 4 comments

Comments

@Rondom
Copy link
Contributor

Rondom commented Aug 24, 2016

Again I am not familiar with MSI, so take this feature request with a grain of salt.

Downstream users of Dokan currently install Dokan Library during installation of their software product. When they upgrade to a new major version Dokan (for example from Dokan 1.x.x to 2.y.y) they cannot safely remove the older version because it could break other applications.

This issue is for investigating in how far Windows Installer provides features to declare a dependency on Dokan and handle this cleanly (Components?, Merge Modules?) and implementing a possible solution.

@js69
Copy link

js69 commented Aug 24, 2016

This is something that can comfortably only be handled by a custom bootstrapper. MSI itself offers no real mechanism to restart the installation after a reboot.

@Rondom
Copy link
Contributor Author

Rondom commented Aug 25, 2016

There is no reboot needed when doing a major upgrade e.g. 1.x.x to 2.y.y. The new driver and library can be installed alongside the old one.

@js69
Copy link

js69 commented Aug 25, 2016

Regarding uninstall of unneeded software: there is a dependency registration on MSI packages, but that registration is only really done by WiX bundles so you would not really know if there isn't other software that uses an older Dokan version.

In the WiX bundle install log you'll see this:
Registering dependency: {805152fc-59e3-4585-9f11-ea59b34f36b9} on package provider: {65A3A964-3DC3-0100-0000-160729112819}, package: Dokan_x64.msi

This creates an entry here:
HKEY_CLASSES_ROOT\Installer\Dependencies\{65A3A964-3DC3-0100-0000-160729112819}\Dependents\{805152fc-59e3-4585-9f11-ea59b34f36b9}

WRT scenarios like MediaPortal:
You could detect an obsolete Dokan library in your application's bundle setup, but should only offer an option to uninstall, not force it.

@overheadhunter
Copy link

Maybe this is a matter of documentation in the How to package your application with Dokan:

We could use some kind of matrix showing what to package on what Windows version and CPU architecture.

For example: Afaik for the latest Dokany 1.3.0.1000 on Windows 10 64bit only one single VC++ redistributable is required. But I am not sure and would like some kind of official documentation for this, so I know what I have to check in our downstream installer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants