-
Notifications
You must be signed in to change notification settings - Fork 48
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
How to support .NET MAUI on .NET 10? #1084
Comments
To be precise, .NET MAUI 10 will run on today's packages. However the NativeAOT feature (when it exists) will not work without My hunch is that (2) isn't going to work in practice. Let's say we have:
NuGet considers Additional issues:
I think (1) is probably the better way to go. We would need to decide if we're concerned about using a .NET 10 preview CSC to compile our "Idea 3" would be a custom NuGet feed. This would require extra effort on the user's part. We probably need to decide what timeframe(s) we are talking about. For example, a custom feed is probably good enough for the first several previews as the expectation is that users will have to do quite a bit of extra effort to try it out. (And they will likely just be doing toy "hello world" apps. No one could try to port their existing "real" apps because the ecosystem support won't exist yet.) As .NET previews mature, maybe we are more comfortable with doing (1) with the Roslyn caveat. We will also likely need build warnings/errors that can detect when you're attempting to use NativeAOT with non-supported binding libraries. |
For this problem, do we normally just bump a Is there already something built into this repo for doing this? To "align" all the packages?
I don't think we can require a custom feed for the |
We do not publish preview packages, so it isn't something that has come up. But then you have the same problem when we publish a new
Yes, you can run
We could add a |
My initial idea (gut feeling) was - Option 1
How big problem would that represent? I am afraid Option 2 will cause confusion and tons of issues. Option 3 (nuget feed) would also be feasible solution.
This would be a problem if stable 1.0.1 is published. Usually we bump build number (4th numerical part) |
@moljac are we OK to use a preview roslyn for the stable .NET 8 and 9 packs? Or do you propose to build the repo twice and somehow "merge in" the .NET 10 assemblies? |
I think this would be OK.
I think this would be overly complicated and we don't have that much resources. |
I was thinking if we do go down this route, the easiest way may be to:
This way the NuGet package would already be correctly built and we just change one file in it. This feels easier than:
|
Android framework version
Other
Affected platform version
.NET 10, NativeAOT
Description
For NativeAOT-friendly support, there are some generator changes to emit methods like:
These use:
Java.Interop.dll
methods that are only present in .NET 10OnUserUnhandledException()
relies on a feature that only works in ICorDebug (not Mono debugger)I have a PR here that builds this repo with a
net10.0-android
tfm:TargetFramework=net10.0
#1079So, how do we build .NET MAUI for .NET 10 and rely on new AndroidX binding packages?
Idea 1
Multi-target for .NET 8, .NET 9, .NET 10.
This would require:
Potential blocker:
Idea 2
Build a "preview" set of AndroidX and GPS NuGets with a version number like
-preview-net10
or similar.Publish these to NuGet.org.
.NET MAUI relies on these for .NET 10.
Potential blocker:
-preview-net10
packages and try to use them.Conclusion
I am somewhat leaning towards no. 2, but @jpobst or @Redth open to other ideas?
The text was updated successfully, but these errors were encountered: