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

Replace setup engine and updater #110

Open
nefarius opened this issue May 5, 2023 · 9 comments
Open

Replace setup engine and updater #110

nefarius opened this issue May 5, 2023 · 9 comments
Assignees
Labels
enhancement New feature or request

Comments

@nefarius
Copy link
Owner

nefarius commented May 5, 2023

My patience has run out with all these weird unexplainable Advanced Installer issues and I'm done wasting my time with the product. Putting this here as a reminder for the year 2027.

Wix# sounds promising, could reuse all the .NET efforts already put into making a stable driver installer.

@nefarius nefarius added the enhancement New feature or request label May 5, 2023
@nefarius nefarius self-assigned this May 5, 2023
@nefarius
Copy link
Owner Author

nefarius commented May 6, 2023

I guess it smelled my dissatisfaction and started to comply, here's what went wrong:

  • Windows (and MSI) doesn't allow paths ending with a period. This resulted in the manufacturer name Nefarius Software Solutions e.U. getting mangled to Nefarius Software Solutions e.U in the file system, which resulted in path and MSI properties not matching up
  • The default extraction path Advanced Installer configures just plainly sucks. It chooses a user-session temporary location and when invoked under service account through the update process, the MSI gets extracted to a location not accessible to the local user session, which resulted in the following error:
    image
    • This got fixed by choosing a machine-wide accessible location:
      image
    • Yes, this is documented in their FAQ but incomplete, because:
    • Also Do not delete extracted MSI and CAB files has to be ticked, otherwise the bootstrapper nukes the directory when finished and it will be gone after a reboot and the installation of the new version can not continue

Will consider this solved, for now, until it starts to annoy me again, then it gets the boot for real 👢

@nefarius nefarius closed this as completed May 6, 2023
@nefarius nefarius changed the title Look for new setup engine Setup engine issues May 7, 2023
@nefarius nefarius reopened this May 7, 2023
@nefarius
Copy link
Owner Author

nefarius commented May 7, 2023

Unearthed to track new problems (it never ends):

@nefarius
Copy link
Owner Author

This piece of shit just doesn't wanna learn so as soon as I have the time, it gets replaced entirely. Period.

@nefarius nefarius changed the title Setup engine issues Replace setup engine and updater Oct 31, 2023
@nefarius
Copy link
Owner Author

nefarius commented Feb 4, 2024

The new updater is taking shape, will be release-ready pretty soon.

@nefarius
Copy link
Owner Author

Related #137

@nefarius nefarius modified the milestone: v1.5 Release Feb 11, 2024
@nefarius
Copy link
Owner Author

Note: the new setup workflow should be able to detect if a driver update is even necessary and if so, hot-swap to the new version so only one reboot is required. Currently since each product version is treated as an independent installation, the user is first faced with one reboot dialog on upgrade due to removal of the existing version:

image

Then after reboot nr. 1 is greeted with another dialog to reboot again; this time it comes from finishing the actual installation of the latest version:

image

It works but is very clunky and not user-friendly, to put it mildly.

@nefarius
Copy link
Owner Author

nefarius commented Sep 2, 2024

  • WixSharp v4 should be stable enough now to migrate to.

@nefarius
Copy link
Owner Author

nefarius commented Oct 26, 2024

I have managed to come up with a new control flow that skips removing and re-installing the driver entirely if the current local version is equal to or newer to what the current setup ships. This now makes shipping upgrades that only touch user-mode components blazing fast and completely eliminates the need to reboot. Small steps.

@nefarius
Copy link
Owner Author

I also got ETW tracing and logging of all components to work again; the shipped installation directory and the paths used in the ETW manifest files drifted apart some time in the past, which caused issues with tools like wevtutil and alike.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant