Repository navigation
feat(launcher): use the shared out-of-process crash reporter - #3414
Kryptos-FR wants to merge 3 commits into
Conversation
|
@xen2 I think the trigger for the Launcher CI is broken. It should have triggered but it was skipped. I believe there is a missing |
Good catch, can you try again? (a rebase should suffice) |
Replace the Launcher's own in-process crash window (which tricked Avalonia into spinning up a second app) with the same CrashStore + Stride.CrashReporter pipeline GameStudio uses: CrashReportHelper builds and scrubs the report, then saves/sends/spawns the reporter per CrashPolicy. Drops the now-dead CrashReportViewModel/CrashReportWindow and the redundant ProcessAction try/catch now that startup failures flow through the same handler. Updates the crash-reporting and launcher docs to match.
7e90c98 to
3bd5cca
Compare
|
Trying to use same out of process system will need a lot of extra work & testing:
Overall, I feel it's not worth it, unless there's something we fundamentally can't fix for the in-process version. I was initially hoping using Avalonia crash reporter lib in Avalonia launcher would play nicely and keep things simple. |
|
I'm not sure to understand all your points.
It's the same as the GameStudio, the Launcher references the package privately which should force it to resolve with nuget. Then it calls
Already the case for the new Launcher. Avalonia requires .NET 10. Installing the .NET 10 runtime should be taken care of by the setup installer or added explicitly as a pre-requisite in the documentation. Tne GameStudio and the CLI also requires .NET 10, so not sure what the issue is. |
GameStudio depends on CrashReporter (as a nuget dependency) so we know for sure it's restored. I don't think the launcher is doing any of that (and it's too late to do it when it crashes anyway) Also there is no real "corresponding" version: CrashReporter is released with GameStudio version (i.e. 4.4.0) and is tied to its command-line interface (in case we add extra command line parameter for new crash reporting details, mode, etc.) So we would need to do a new Stride.Launcher.CrashReporter package matching launcher version (fixed); at this point, why not simply have it inside the Stride.Launcher package?
No, since we do a self-contained app, it doesn't need the .NET runtime installed at all. Of course, Stride itself have packageinstall.exe + install-prerequisites.exe to install any new prerequisites not on the system. Or, do you mean that Avalonia doesn't support to be embedded in a self-contained app, and need the actual framework somehow? |
|
🤖 Draft PR — automatic CI is skipped to save runner minutes.
|
|
@xen2 I will think about it. There might be some workarounds (like publishing both Strride.CrashReporter and Stride.Launcher trimmed), but right now it doesn't exactly work. I found a few other issues that can prevent publishing. I'll open a separate PR for them. |
PR Details
Use the same crash report mechanism for the Launcher.
This avoid a unstable workaround in the Launcher that tricked the Avalonia runtime to start a new app. It did not work in every cases and could be broken in any future update as it's not officially supported.
Relates to #3348.
Types of changes
Checklist