PlatformKit 4.0.0

dotnet add package PlatformKit --version 4.0.0
NuGet\Install-Package PlatformKit -Version 4.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PlatformKit" Version="4.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PlatformKit --version 4.0.0
#r "nuget: PlatformKit, 4.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install PlatformKit as a Cake Addin
#addin nuget:?package=PlatformKit&version=4.0.0

// Install PlatformKit as a Cake Tool
#tool nuget:?package=PlatformKit&version=4.0.0

PlatformKit

About PlatformKit

PlatformKit is a C# .NET library focusing on dealing with cross-platform OS detection, OS version detection, platform specific code, and platform specific issues.

This can be added to any .NET Standard 2.0, .NET 6, or .NET 8 supported Application or Library.

NOTE: .NET Standard 2 and .NET 6 support is deprecated and will be removed in PlatformKit 5.

Compatibility

PlatformKit Version series .NET Targets supported
4.x Pre-release .NET Standard 2.0, .NET 6 (Explicit support) , and .NET 8 (Explicit support)
3.x .NET Standard 2.0 and .NET 6 (Explicit support)
2.0.0 through 2.6.10 .NET Standard 2.0

NuGet NuGet

How to get PlatformKit

You can get PlatformKit on Nuget

PlatformKit Capabilities

To learn more about which versions of PlatformKit support which features, please check out our feature comparison document

Contributions

See Contributing guide for how to contribute to this project.

Apps and Libraries built with PlatformKit

If you'd like to add your app here and it uses this library then please submit a new issue asking for this.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on PlatformKit:

Package Downloads
PlatformKit.Hardware

Hardware Detection made easy in C#. From the creators of PlatformKit.

PlatformKit.Software

Detect Installed Software and more.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
4.0.0 56 5/4/2024
3.7.1 74 5/4/2024
3.7.0 54 4/22/2024
3.6.7 69 4/14/2024
3.6.6 63 4/12/2024
3.6.5 68 4/10/2024
3.6.4.1 69 4/2/2024
3.6.3 81 3/15/2024
3.6.2 82 2/25/2024
3.6.1 97 1/19/2024
3.6.0 113 1/16/2024
3.5.0 126 12/28/2023
3.4.1 107 12/8/2023
3.4.0 109 9/25/2023
3.3.1 154 6/21/2023
3.3.0 149 5/15/2023
3.0.4 296 11/24/2022
3.0.3 371 10/27/2022
3.0.2 348 10/18/2022
3.0.1 434 9/16/2022
3.0.0 387 8/29/2022
2.6.10 490 9/13/2022
2.6.9.1 391 8/25/2022
2.6.9 389 8/18/2022
2.6.8 399 8/18/2022
2.6.7 420 8/11/2022
2.6.6.1 552 7/25/2022
2.6.6 415 7/17/2022
2.6.4 414 6/15/2022
2.6.3 407 6/6/2022
2.6.2 419 5/31/2022
2.6.1 403 5/28/2022
2.6.0 434 5/10/2022
2.5.5 411 6/15/2022
2.5.4 410 5/30/2022
2.5.3 411 5/28/2022
2.5.2 400 5/10/2022
2.5.1 408 5/7/2022
2.5.0 435 4/7/2022
2.4.4 394 5/29/2022
2.4.3 412 5/7/2022
2.4.2 400 4/4/2022
2.4.1 415 4/2/2022
2.4.0 445 1/26/2022
2.3.2 267 1/5/2022
2.3.1 267 12/30/2021
2.3.0 301 12/15/2021
2.2.3 257 1/5/2022
2.2.2 290 12/10/2021
2.2.1 289 12/10/2021
2.2.0 278 11/22/2021
2.1.2 265 1/5/2022
2.1.1 293 12/10/2021
2.1.0 306 11/9/2021
2.0.2 256 1/5/2022
2.0.1 292 12/10/2021
2.0.0 358 10/21/2021

## Changes since 3.7 series

### Additions
* Added additional enum values to ``LinuxDistroBase``
* Added ``SteamOsAnalyzer`` class that extends ``LinuxOsAnalyzer`` class
 * Added support for detecting SteamOS version
 * Added support for detecting SteamDeck mode (e.g. Gaming Mode or Desktop Mode)
* Added Target Framework Moniker (TFM) detection
* Improved Runtime ID (RID) detection/generation

### Changes
* Re-licensed the library back to MIT License as the project originally was
* Optimised and Improved code performance in the library
* Fixed issues with FreeBSD Runtime ID Generation
* Moved WMI related code from WindowsAnalyzer to WMISearcher
* Moved Windows Registry code from WindowsAnalyzer to WinRegistrySearcher
* Moved TFM relatee code from the RuntimeIdentification class to TargetFrameworkIdentification class
* Renamed ``MacOSAnalyzer`` class to ``MacOsAnalyzer``
* Renamed ``FreeBSDAnalyzer`` class to ``FreeBsdAnalyzer``
* Renamed``PlatformIdentification`` class to ``PlatformKitIdentification``
* Deprecated some methods in PlatformKitIdentification - These will be removed in V5
* Added a missing case to a method in the RuntimeIdentification class for wasm - This now throws a PlatformNotSupported exception as this isn't supported for Runtime ID generation.
* Renamed some methods in Analyzer classes
* Deprecated some methods that will be removed in V5
* Moved ``NetworkCard`` to the PlatformKit namespace

### Removals
* Removed old debugging code
* Removed ``ConsoleHelper`` class
* Removed support for OS X 10.9 through 10.11 (10.9, 10.10, and 10.11.x) - MacOsAnalyzer will now return ``MacOsVersion.NotSupported`` when attempting to detect any of these versions.
* Removed support for macOS 10.12 "Sierra" - MacOsAnalyzer will now return ``MacOsVersion.NotSupported`` when attempting to detect this version.
* Removed support for Windows 7, Windows 7 SP1, and Windows Server 2008 R2 - WindowsAnalyzer will now return ``WindowsVersion.NotSupported`` when attempting to detect any of these versions.
* Removed ``ProcessManager`` - RunProcess methods have been moved to ``ProcessRunner`` class, RunCommand methods have been moved to ``CommandRunner`` class, and the URL opening method has been moved to the ``UrlRunner`` class.
* Removed ``OSAnalyzer`` class - .NET Standard 2 users of PlatformKit have an additioanl dependency on ``PlatformKit.Extensions.OSDetection`` for Operating System Detection