Forum Discussion
ChreesM
Oct 30, 2019Brass Contributor
Winforms .exe in MSIX Package Does Not Startup After Auto Update
We are deploying a classic Winforms .exe via MISX. Approximately 20% of the time, the application does not start automatically after an auto update completes. After an update and failed start, we can...
christophekeller
Sep 02, 2022Copper Contributor
@Roy_MacLachlan any news on this?
Has someone been able to work around this problem? (for example with a custom update process like alluded to here):
https://github.com/MicrosoftDocs/msix-docs/issues/59
??
MikeH
Oct 19, 2022Brass Contributor
Hi Christophe,
For apps packaged with Conveyor [1] we have a workaround:
1. We default to background updates, which don't have this issue.
2. We have a tiny Win32 app that drives the package manager via the WinRT/C++ API and then starts the app once complete. If a packaged program wishes to force an update and knows one is available e.g. from a server poll, it simply invokes the bundled EXE and then quits. The stub EXE then drives the install/upgrade process whilst showing a progress bar and app logo, and relaunches the app when done.
This gives a similar experience to the built-in "check on start" mode, but with these caveats:
1. It's a feature of Conveyor, not MSIX. Therefore you must use Conveyor to package your app to get it.
2. It's not yet a fully launched/documented feature. You'd probably want our help to activate it. We should launch it soon though.
3. It's up to your app to notice there's a new version available and trigger the update process. For example by doing a quick poll whilst showing a splash screen. We don't block startup like the AppInstaller integration will do, because you may wish to overlap the update check with things like logging in to a server, instead of adding app latency every single time.
You can see a short looping video of what the installer EXE looks like on our website: https://hydraulic.software/
For apps packaged with Conveyor [1] we have a workaround:
1. We default to background updates, which don't have this issue.
2. We have a tiny Win32 app that drives the package manager via the WinRT/C++ API and then starts the app once complete. If a packaged program wishes to force an update and knows one is available e.g. from a server poll, it simply invokes the bundled EXE and then quits. The stub EXE then drives the install/upgrade process whilst showing a progress bar and app logo, and relaunches the app when done.
This gives a similar experience to the built-in "check on start" mode, but with these caveats:
1. It's a feature of Conveyor, not MSIX. Therefore you must use Conveyor to package your app to get it.
2. It's not yet a fully launched/documented feature. You'd probably want our help to activate it. We should launch it soon though.
3. It's up to your app to notice there's a new version available and trigger the update process. For example by doing a quick poll whilst showing a splash screen. We don't block startup like the AppInstaller integration will do, because you may wish to overlap the update check with things like logging in to a server, instead of adding app latency every single time.
You can see a short looping video of what the installer EXE looks like on our website: https://hydraulic.software/