Instances 3.0.1

dotnet add package Instances --version 3.0.1                
NuGet\Install-Package Instances -Version 3.0.1                
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="Instances" Version="3.0.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Instances --version 3.0.1                
#r "nuget: Instances, 3.0.1"                
#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 Instances as a Cake Addin
#addin nuget:?package=Instances&version=3.0.1

// Install Instances as a Cake Tool
#tool nuget:?package=Instances&version=3.0.1                

Instances

A .NET Standard Process wrapper with an elegant API, for both asyncronous and syncronous use, providing both Events and support for Tasks with cancellation support

.NET Core codecov.io GitHub Nuget Nuget Dependent repos (via libraries.io)

Usage

There are three ways to use this library, requiring at least 1, 2, or 3 lines of code to use.

Shortest form, supporting only few options

var result = await Instance.FinishAsync("dotnet", "build -c Release", cancellationToken);
Console.WriteLine(result.ExitCode);
// or
var result = Instance.Finish("dotnet", "build -c Release");

Short form, supporting more options

using var instance = Instance.Start("dotnet", "build -c Release");
var result = await instance.WaitForExitAsync(cancellationToken);
// or
using var instance = Instance.Start("dotnet", "build -c Release");
var result = instance.WaitForExit();

Full form, supporting all options

var processArgument = new ProcessArguments("dotnet", "build -c Release");
processArgument.Exited += (_, exitResult) => Console.WriteLine(exitResult.ExitCode);
processArgument.OutputDataReceived += (_, data) => Console.WriteLine(data);
processArgument.ErrorDataReceived += (_, data) => Console.WriteLine(data);

using var instance = processArgument.Start();

var result = await instance.WaitForExitAsync(cancellationToken);
// or 
var result = instance.WaitForExit();

Features

using var instance = Instance.Start("dotnet", "build -c Release");

// send input to process' standard input
instance.SendInput("Hello World");

// stop the process
instance.Kill();

// access process output
foreach (var line in instance.OutputData)
    Console.WriteLine(line);
// and error data easily while the process is running
foreach (var line in instance.ErrorData)
    Console.WriteLine(line);

// or wait for the process to exit (with support for cancellation token)
var result = await instance.WaitForExitAsync(cancellationToken);
Console.WriteLine(result.ExitCode);
Console.WriteLine(result.OutputData.Count);
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  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 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.
  • .NETStandard 2.0

    • No dependencies.

NuGet packages (15)

Showing the top 5 NuGet packages that depend on Instances:

Package Downloads
FFMpegCore

A .NET Standard FFMpeg/FFProbe wrapper for easily integrating media analysis and conversion into your .NET applications

FFMpegCore.NativeAOT

A .NET Standard FFMpeg/FFProbe wrapper for easily integrating media analysis and conversion into your .NET applications

FFMpegCore.Extensions.System.Drawing.Common.NativeAOT

Image extension for FFMpegCore using System.Common.Drawing

Gami.Core

A shared library for Gami UI and plugins

ChocoWrapper

A chocolatey wrapper in windows.

GitHub repositories (3)

Showing the top 3 popular GitHub repositories that depend on Instances:

Repository Stars
rosenbjerg/FFMpegCore
A .NET FFMpeg/FFProbe wrapper for easily integrating media analysis and conversion into your C# applications
xiaoyaocz/biliuwp-lite
哔哩哔哩UWP Lite
revenz/FileFlows
FileFlows is a file processing application that can execute actions against a file in a tree flow structure.
Version Downloads Last updated
3.0.1 333 12/5/2024
3.0.0 1,234,454 1/28/2023
2.0.0 351,385 3/12/2022
1.6.1 175,594 1/7/2022
1.6.0 379,755 7/20/2020
1.5.0 23,912 2/23/2020
1.4.0 3,407 2/18/2020
1.3.3 556 2/12/2020
1.3.2 521 2/12/2020
1.3.1 524 2/12/2020
1.3.0 538 2/12/2020
1.2.0 532 2/11/2020
1.1.0 545 2/11/2020
1.0.0 599 2/11/2020

- Bump dependencies
- Fix for cancellation cornercase in WaitForExitAsync