stride3d / stride3d/stride

Feature request: Fully migrate away from Xamarin tooling

Open
#3,020 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C#
Stars
7.8k
Forks
1.2k
Avg merge
2d 17h
Merged PRs (30d)
49

Description

Is your feature request related to a problem? Please describe.
The Xamarin tooling is now completely out of support and marked as end of life. It is no longer possible to install the Xamarin workload in Visual Studio 2026, and it is marked as out of support and thus not production ready in older Visual Studio versions.

Although Stride creates Android and iOS platform projects using the modern android/iOS TFMs, there are still references to Xamarin assemblies and types in the project templates, and also the new project dialog does not correctly detect the modern .net for android and .net for iOS workload. This results in a warning that the target platform is not supported on the developer machine, even when it is:

Image

Additionally, because the project system doesn't detect that Android and iOS is "enabled" on the developer machine, when the project is created, it doesn't include the android and iOS TFMs in the "Game" project. This results in an error on project creation, and when you open the project in Visual Studio, it can't build due to the missing android TFM. I believe this is due to this T4 template, but I'm not sure:

'\sources\editor\Stride.Assets.Presentation\Templates\Core\Common.TargetFrameworks.targets.t4`:

Image

The detection code appears to be here:
\sources\engine\Stride.Assets\StrideConfig.cs:
for example, for android detection:
Image

Image

You can see here that it is checking for Xamarin components and target files.

There also seems to be some lingering Xamarin references in the project template:
\sources\tools\Stride.ProjectGenerator\Templates\Stride.UnitTests\$ProjectName$.csproj.t4:

Image

Describe the solution you'd like
First of all, there should no longer be any references to the Xamarin tooling or assemblies in all project templates, T4 templates, etc.. for Android and iOS targets. Second, the new project dialog should be updated to correctly detect the modern .NET for Android and iOS workloads, as it currently requires Xamarin tooling to be installed (which is impossible in VS 2026 and out of support for VS 2022).

Describe alternatives you've considered
The only workaround in this case is to manually fix project templates after Stride creates them to add the correct android TFM. After which, it's possible to build and run the game on Android, although many of the templates have rendering and fullscreen issues when running in the Android emulator (those issues are beyond the scope of this issue, perhaps).

Here are some questions that can aid in the description of the feature request:

  • What are the use cases?
    • Mobile game developers, including standalone VR platforms, require Android and iOS platform support.
  • Does the feature affect behavior in the editor?
    • Yes, this would affect the new project dialog, which should properly detect the modern mobile .net workloads without Xamarin tooling installed.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with sources/engine/Stride.Assets/StrideConfig.cs to trace Android and iOS workload detection, then inspect sources/editor/Stride.Assets.Presentation/Templates/Core/Common.TargetFrameworks.targets.t4 and sources/tools/Stride.ProjectGenerator/Templates/Stride.UnitTests/$ProjectName$.csproj.t4 for Xamarin references. Compare the generated project files and new project dialog behavior with modern .NET Android and iOS workloads. Done means templates no longer reference Xamarin tooling or assemblies and generated Game projects include the appropriate mobile TFMs.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
game-dev, mobile-dev, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.