-
Notifications
You must be signed in to change notification settings - Fork 545
Document Default RDIs From .net 8 #10064
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
Comments
It sounds like you already found them, they are: <RuntimeIdentifiers>android-arm;android-arm64;android-x86;android-x64</RuntimeIdentifiers>
So, a difference between .NET 8 and 9, is we more strictly split up .NET assemblies per-architecture with app bundles. Previously, in .NET 8 you would end up with 4 copies of Are you deploying on Google Play, or something else? You may be better off using Google Play's app size estimates as those will be more accurate than comparing the size of an |
Thanks Jonathan. It wasn't clear that .net 8 built for all those RDIs, only that those were all the possible RDIs. We build one APK, and that is made available on Google Play and also on our own website. |
not sure if google play will optimize an .apk... It might be better to use the .aab format for google play. |
We never migrated to .aab. Perhaps now is the time. However, since we are not using an app bundle, I an unclear as to whether @jonathanpeppers theory would hold in this case. |
If you have a single So, I think your path forward is:
The benefit for no. 2, is the download will be smaller, but either the user (or your website) will need to select the correct The way this works,
Which is in Then
More info on this here: |
Thanks Jonathan. The website distribution is sufficiently niche that I don't mind the files being larger, and it certainly isn't worth my splitting them up to create separate downloads. Presumably then, the nearly 70% growth in the .apk is just general bloat in all the .net libraries? There doesn't seem to be anything else left to explain it. Sounds like I need to read up on migrating to producing app bundles. |
.NET 9 has a copy of all .dll files per architecture. .NET 8 shared most of the .dll files, except |
Ah, I see. Thanks, that must explain it then. |
Android framework version
net9.0-android
Affected platform version
VS 2022, Command Line Builds
Description
There exists a pull request, below, where you have removed runtime identifiers from builds by default in .net 9, which means unsuspecting companies upgrading from .net 8 to .net 9 will suddenly find that they have lots of unhappy customers for whom their app no longer installs.
#9179
Unfortunately, I have been unable to find a list of runtime identifiers that were built for by default on .net 8. If I turn on all four RDIs in that link, our .apk file jumps to over 73mb, whereas builds in .net 8 have always been approximately 43mb.
Either I am missing which RDIs should be set to replicate the output from .net 8, in which case they need to be documented somewhere, OR .net 9 has massively increased the size of our published output, in which case it would be good to understand why.
Steps to Reproduce
Start with an existing non-trivial android application in .net 8, and ensure no element is present in the project file. Observe its packaged size when built. Change the target framework to .net 9 and build again, and you'll see initially that the packaged size has decreased, but then turn on all four runtime identifiers from the link above, and you'll see it has increased substantially.
Did you find any workaround?
No response
Relevant log output
The text was updated successfully, but these errors were encountered: