GameInputSharp.Core
1.0.1
dotnet add package GameInputSharp.Core --version 1.0.1
NuGet\Install-Package GameInputSharp.Core -Version 1.0.1
<PackageReference Include="GameInputSharp.Core" Version="1.0.1" />
<PackageVersion Include="GameInputSharp.Core" Version="1.0.1" />
<PackageReference Include="GameInputSharp.Core" />
paket add GameInputSharp.Core --version 1.0.1
#r "nuget: GameInputSharp.Core, 1.0.1"
#:package GameInputSharp.Core@1.0.1
#addin nuget:?package=GameInputSharp.Core&version=1.0.1
#tool nuget:?package=GameInputSharp.Core&version=1.0.1
GameInputSharp.Core
Universal, idiomatic C# wrapper for Microsoft.GameInput. Targets .NET 8+ with optional shims for Unity, MonoGame, Godot C#, Stride, and WPF/WinUI. This package covers game and desktop input, haptics, and device callbacks.
Package: GameInputSharp.Core on NuGet.org
Repository: github.com/Fenris159/GameInputSharp.Core
Compliance and redistribution
This is a third-party C# wrapper library. It requires the official Microsoft.GameInput NuGet package. Not affiliated with, endorsed by, or supported by Microsoft Corporation. Intended for Windows PC development.
- Dependency: Use only the Microsoft.GameInput NuGet package. Do not depend on the full GDK or Xbox-specific libraries.
- Redistribution: You must redistribute gameinput.dll and any other runtime files according to Microsoft's rules. See the Microsoft.GameInput package and documentation for current redistribution requirements.
- Runtime: The Microsoft.GameInput NuGet package does not ship the runtime DLL. The GameInput runtime must be available on the target Windows machine.
Setup
Add the package:
dotnet add package GameInputSharp.Core
Or add a package reference:
<PackageReference Include="GameInputSharp.Core" Version="1.0.1" />
Target .NET 8+. Full device support requires Windows and the GameInput runtime.
Quick start
using GameInputSharp.Abstractions;
using GameInputSharp.Devices;
using var manager = new GameInputManager();
var devices = manager.GetDevices();
foreach (var device in devices)
{
Console.WriteLine($"{device.DisplayName} - {device.DeviceId}");
if (device is GamepadDevice gamepad)
gamepad.Haptics.SetVibration(0.5f, 0.5f);
}
Included docs
The package includes offline documentation under docs-site/ when built with MkDocs before packing, plus markdown guides under docs/.
- Usage guide:
docs/USAGE.md - Compatibility guide:
docs/COMPATIBILITY.md - Changelog:
CHANGELOG.md - Full documentation and samples: GitHub repository
License
MIT. By using this library you agree to comply with Microsoft's redistribution and licensing terms for GameInput.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. net8.0-windows7.0 is compatible. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.2)
- Microsoft.GameInput (>= 3.4.218)
- System.Memory (>= 4.5.5)
-
net8.0-windows7.0
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.2)
- Microsoft.GameInput (>= 3.4.218)
- System.Memory (>= 4.5.5)
-
net9.0
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.2)
- Microsoft.GameInput (>= 3.4.218)
- System.Memory (>= 4.5.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.1 | 89 | 6/14/2026 |
| 0.1.0-alpha | 170 | 2/19/2026 |
1.0.1: Treat unsupported GameInput COM interfaces as unavailable runtime instead of throwing; validate invalid FindDevice inputs before runtime initialization; update package documentation. See CHANGELOG.md for details.