Replace Polyfill by Meziantou.Polyfill and bring back internal OperatingSystem polyfills
#2411
+735
−363
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Polyfill'sOperatingSystem.IsAndroid()callsunameviaProcess.Start()to determine whether the app is running on Android, which is fairly problematic as 1) it spawns a process for that, which isn't ideal 2) it does so even on non-Android platforms like Windows, which generates unnecessary first-chance exceptions.Unfortunately, it's not easy to opt out specific polyfills with the
Polyfilllibrary. WhileMeziantou.Polyfillcurrently exposes fewer polyfills, it's a lot easier to opt-out specific types or members.This PR replaces
PolyfillbyMeziantou.Polyfilland adds internalOperatingSystempolyfills similar to what we have before moving toPolyfill.