This is to fix a problem where using a self-contained dotnet core application that uses System.Management requires specific dotnet framework to be installed on the machine (see here). Instead, we use MMI which is the recommended way. This still fails on some machine, such as Windows 7 SP1 without WMF3.0 installed so changes were made to fail silently and only use obtainable information when creating DeviceId.
Add support for MMI (Microsoft.Management.Infrastructure) in dotnet core instead of deprecated System.Management
Add DeviceIdComponentFailedToObtainValueException to indicate when a component can't be obtained (as opposed to having an empty or null value)
Hi. Thanks for this PR - it looks very useful. Are you able to rebase it on the top of the current branch so it's a bit easier to review and merge please? Thanks in advance.
This is to fix a problem where using a self-contained dotnet core application that uses System.Management requires specific dotnet framework to be installed on the machine (see here). Instead, we use MMI which is the recommended way. This still fails on some machine, such as Windows 7 SP1 without WMF3.0 installed so changes were made to fail silently and only use obtainable information when creating DeviceId.