We are in the process of updating our netcoreapp3.1 libraries and programs to net5.0. These libraries are referencing one netstandard2.0 library which uses WinRT if supported via a NuGet reference to Microsoft.Windows.SDK.Contracts.
This is checked via RuntimeInformation.IsOSPlatform(OSPlatform.Windows).
If I now use this library from net5.0 and execute the part using WinRT I get the following exception (executed on Win 10 20H2 with .NET 5.0.2):
System.PlatformNotSupportedException: Operation is not supported on this platform. (0x80131539)
If I read up on the breaking changes for net5.0 I get that this package is no longer needed/supported and to use WinRT you should target e.g. net5.0-windows10.0.17763.0. But I would like to keep the library platform-agnostic as netstandard2.0 and keep using the IsOSPlatform-switch, as other parts of the library are also used on Linux or using net471.
How can I make this work with net5.0 as we did with netcoreapp3.1?
User contributions licensed under CC BY-SA 3.0