PlatformKit 2.2.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package PlatformKit --version 2.2.0
NuGet\Install-Package PlatformKit -Version 2.2.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="2.2.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PlatformKit --version 2.2.0
#r "nuget: PlatformKit, 2.2.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=2.2.0

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

PlatformKit (formerly AluminiumCoreLib)

formerly AluminiumCoreLib

AluminiumCoreLib was designed to help programmers be more efficient when using C# by providing a library containing many things that programmers may need in their application.

About PlatformKit

PlatformKit is a re-focussing on making the library, written in C#, more lightweight and focussing specifically on dealing with Platform specific code, platform specific issues, and platform detection.

This is a Work In Progress and so some things may not work well or may not work at all.

This can be added to any .NET Standard 2.0, .NET Core 3.1, or .NET 5 supported Application.

NuGet NuGet

How to get PlatformKit

You can get PlatformKit on Nuget

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 submit a new issue asking for this.

Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  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 was computed.  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 is compatible. 
.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 0 5/4/2024
3.7.1 0 5/4/2024
3.7.0 52 4/22/2024
3.6.7 67 4/14/2024
3.6.6 61 4/12/2024
3.6.5 66 4/10/2024
3.6.4.1 67 4/2/2024
3.6.3 79 3/15/2024
3.6.2 80 2/25/2024
3.6.1 95 1/19/2024
3.6.0 111 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 2.1.0
* Added support for detecting Linux Distribution Information in the the new ``OSAnalyzer`` class which is now stored in the ``LinuxDistributionInformation`` model class.
* Added support for detecting Linux Distribution Version in ``OSVersionAnalyzer`` - This relies on the new Linux Distribution Information being detected in the ``OSAnalyzer`` class.
* Changed arguments required for several ``ProcessManager`` process related methods.
* Added support for executing commands on Windows (either through using the Cmd method or Powershell method) and Linux - macOS is also technically supported but is untested and may not work well or at all.
* Moved RuntimeIdentification code to new ``RuntimeIdentification`` class.
* Added ``RuntimeIdentifier`` class to act as a model to hold information for some of the ``RuntimeIdentification`` class methods.
* Renamed ``DetectTFM`` and TFM related methods to use ``RuntimeIdentifier`` instead of TFM in the name of those methods.
* Removed deprecated ``Platform`` class - Please use the ``PlatformManager`` class instead.
* Deprecate code that is licensed under CC BY SA - This includes the suspend and resume functions for Windows.

### Known Issue(s):
* Windows version detection may fail to detect what version of Windows is running.
* There's no detection of Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, Windows Server v1709, and Windows Server 2019 - The regular Windows version number of those versions will be detected or returned instead.
* As a result of Windows version detection sometimes failing, Generating Specific TFM can also sometimes fail - A possible workaround is creating a Try/Catch block to try to detect the Specific TFM and falling back to the Generic TFM if it fails.