Skip to content

Conversation

@Kryptos-FR
Copy link
Member

PR Details

New Launcher using Avalonia instead of WPF. Still needs some love.

Related Issue

#1503

Types of changes

  • Docs change / refactoring / dependency upgrade
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • My change requires a change to the documentation.
  • I have added tests to cover my changes.
  • All new and existing tests passed.
  • I have built and run the editor to try this change out.

@Kryptos-FR Kryptos-FR added the area-Launcher Stride Launcher label Dec 30, 2025
@Kryptos-FR Kryptos-FR force-pushed the feature/launcher-avalonia-cherrypick branch from e8056d8 to 2847517 Compare December 30, 2025 16:24
@Kryptos-FR Kryptos-FR force-pushed the feature/launcher-avalonia-cherrypick branch from 8b57558 to 7b72320 Compare December 30, 2025 17:58
@Kryptos-FR Kryptos-FR force-pushed the feature/launcher-avalonia-cherrypick branch from 7b72320 to 03f94a4 Compare December 30, 2025 18:49
/// Returns path of Launcher (we can't use Assembly.GetEntryAssembly().Location in .NET Core, especially with self-publish).
/// </summary>
/// <returns></returns>
internal static string? GetExecutablePath() => Environment.ProcessPath;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nitpick: Could this property not be used directly?

Copy link
Member Author

@Kryptos-FR Kryptos-FR Jan 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I just replaced code from the previous implementation to make it cross-platform without changing the overall structure. We could inline it manually.

On the other hand, the method name is a bit more explicit. It's likely inlined anyway by the compiler, so it's just a matter of preference.

}

// Avalonia configuration, don't remove; also used by visual designer.
public static AppBuilder BuildAvaloniaApp()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nitpick: This method seems to be unused. It would be great to integrate with RunNewApp somehow

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's used by the Avalonia plugin. It's needed for the designer.

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

Labels

area-Launcher Stride Launcher

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants