You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Device-specific builds were originally implemented for two reasons:
Building for a single architecture when we knew which device the app was going to be installed on (for example: there's no reason to build for armv7 if the app will be installed on an arm64 device).
Speed up resource compilation a bit by filtering resource compilation to the target device.
However, the first reason is not applicable anymore (arm64 is the only architecture).
The support for device-specific builds also has a few downsides:
It complicates our code.
It increases the path length of the contents in the bin directory, which can be a problem for Windows (due to MAX_PATH limitations).
So the question remains: is the resource compilation build speed decrease worth it for the downsides?
One option could be to disable it by default + add telemetry, and if nobody complains + telemetry shows nobody turns it back on again, then we can remove it.
If we ever do arm64e, would this still be helpful to have? I guess if you can hide it behind a feature flag for the time being is fine and remove later as you propose, Today I don't see real advantages to keep this feature alive unless resource compilation build speed is really bad.
If we ever do arm64e, would this still be helpful to have?
Yes, it probably would.
Apple introduced the arm64e architecture with iOS 12 in 2018 (8 years ago), so I'm not sure we should hold our breath for arm64e ever becoming a separate architecture at this point.
At this point I think we can just remove support for device-specific builds (and it should be easy enough to add it back with help from Copilot if we ever needed it again). Lowering the chance of hitting MAX_PATH on Windows is a rather tangible benefit...
Activity
dalexsoto commentedon Sep 18, 2025
If we ever do arm64e, would this still be helpful to have? I guess if you can hide it behind a feature flag for the time being is fine and remove later as you propose, Today I don't see real advantages to keep this feature alive unless resource compilation build speed is really bad.
rolfbjarne commentedon Sep 19, 2025
Yes, it probably would.
rolfbjarne commentedon Jul 8, 2026
Apple introduced the arm64e architecture with iOS 12 in 2018 (8 years ago), so I'm not sure we should hold our breath for arm64e ever becoming a separate architecture at this point.
At this point I think we can just remove support for device-specific builds (and it should be easy enough to add it back with help from Copilot if we ever needed it again). Lowering the chance of hitting MAX_PATH on Windows is a rather tangible benefit...
rolfbjarne commentedon Jul 9, 2026
In PR #26005 I'm:
The next step would be to remove any device-specific build code, which should wait until .NET 12.
[msbuild] Disable device-specific builds by default. (#26005)