PlatformKit 2.4.0

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

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

PlatformKit (formerly AluminiumCoreLib)

About PlatformKit

PlatformKit is an attempt at making this C# library more lightweight and focussing specifically on dealing with Platform specific code, platform specific issues, and platform detection.

This can be added to any .NET Standard 2.0, .NET Core 3.1, .NET 5, or .NET 6 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.

To see what we're thinking of working on next, check out PlatformKit's Roadmap

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.
  • .NETCoreApp 3.1

    • No dependencies.
  • .NETStandard 2.0

    • No dependencies.
  • net5.0

    • No dependencies.
  • net6.0

    • No dependencies.

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 30 5/4/2024
3.7.1 49 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.3 series

### Additions
* Added the ability to get information from WMI using the `GetWMIValue(string query, string wmiClass, string failMessage)` method in the new WindowsProcessManager class - This class is aimed to holding Windows specific extension methods for ProcessManager.
* Added the ability to get Registry `GetRegistryValue(string query, string value, string failMessage)` method in the new WindowsProcessManager class.

### Deprecations
* Deprecated `IsWindows()`, `IsMac()`, `IsLinux()`, `GetOSPlatform()` methods in the PlatformManager class - These have been moved to OSAnalyzer but will continue to exist in the PlatformManager class until it is removed PlatformKit version 3.0
* Deprecated `IsAppleSiliconMac()` and `GetMacProcessorType()` methods in the PlatformManager class - These have been moved to OSAnalyzer but will continue to exist in the PlatformManager class until it is removed in PlatformKit version 3.0.
* Deprecate some methods in PlatformManager
* Deprecated the `RunCommand`method - This will be removed in PlatformKit 3.0 and will not be replaced. Please use platform specific RunCommand methods instead.
* Deprecated the `RunCommandLinux` method - This will be removed in PlatformKit 3.0 . Please use the newly introduced but otherwise functionally identical `RunLinuxCommand` method

### Modifications
* Add optional parameter of ProcessStartInfo to `RunCommand()` and `RunProcess()` methods
* Increased `ShowLicenseInConsole()` duration requirement from 100ms to 500ms
* Revamped the `RunLinuxCommand()` method to not rely on or use Bash.
* Cleaned up code in some classes and methods
* Change exception type if Directory is not found.
* Minor Tweaks to `OpenUrlInBrowser()` method on Windows
* Allow non HTTPS links to be opened in the `OpenUrlInBrowser()` method
* Fix issues with `ShowLicenseInConsole()` method
* Minor tweaks to in code comments
* Cleaned up the code getting Windows Registry information
* Revamped the `GetLinuxDistributionInformation()` method to remove reliance on GNU Cat command.
* Replaced Linux code in the `OpenUrlInBrowser` method with a `RunLinuxCommand` method call.

### Removals
* Removed deprecated code in `MacProcessorType` enum

## Notes
* The `RunMacCommand()` method is temporarily disabled and will be re-enabled in a future version once this method has been reworked.