WGet.NET 3.0.0-alpha1

This is a prerelease version of WGet.NET.
There is a newer version of this package available.
See the version list below for details.
dotnet add package WGet.NET --version 3.0.0-alpha1                
NuGet\Install-Package WGet.NET -Version 3.0.0-alpha1                
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="WGet.NET" Version="3.0.0-alpha1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add WGet.NET --version 3.0.0-alpha1                
#r "nuget: WGet.NET, 3.0.0-alpha1"                
#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 WGet.NET as a Cake Addin
#addin nuget:?package=WGet.NET&version=3.0.0-alpha1&prerelease

// Install WGet.NET as a Cake Tool
#tool nuget:?package=WGet.NET&version=3.0.0-alpha1&prerelease                

WGet.NET

Version NuGet License Issues CodeQL_main

❓ What is WGet.NET

WGet.NET is a WinGet wrapper library for .Net.

I created it for another project and then made a library out of it in hope it might be usefull to someone else too.
If you tried this library, please give me some feedback. And if you miss a feature, you can create an issue to let me know.

πŸ““ Documentation

https://basicx-strgv.github.io/WGet.NET/

⚑ Features

Support: .Net Core 3.1, .Net Standard 2.0

  • WinGet
    • Get a list of installed packages
    • Search installed packages
    • Search packages
    • Install packages
    • Uninstall packages
    • Upgrade packages
    • Get a list of upgradeable packages
    • Export and Import packages
    • Check if WinGet is installed
    • Get the WinGet version number
    • Get installed sources
    • Add sources
    • Remove sources
    • Update sources
    • Export and Import sources
    • Reset sources
    • Calculate file hash
    • Export Settings
  • Other
    • Asynchronous Execution (Only supported on .Net Core 3.1 or higher)

πŸ“¦ NuGet Package

You can get the NuGet package here: https://www.nuget.org/packages/WGet.NET/

❗ Requirements

WinGet needs to be installed on the system.

If WinGet is not installed on your system you can get it here: https://github.com/microsoft/winget-cli

πŸ’‘ Getting started

The needed namespace is WGetNET (using WGetNET;).
This namespace contains the three classes, that are used to perform actions or get information with winget.

WinGetInfo:

The WinGetInfo class can be used to get information about WinGet itself.
This class is inherited by the WinGetPackageManager and WinGetSourceManager class.

USing this class to check if winget is installed could look like this:

WinGetInfo wingetInfo = new WinGetInfo();
if (wingetInfo.WinGetInstalled)
{
     Console.WriteLine("WinGet is installed.");
}
else
{
     Console.WriteLine("WinGet is NOT installed.");
}

WinGetPackageManager:

The WinGetPackageManager class is used for everything that has to do with packages.
It can install, remove, upgrade, search, list, export and import packages.

The code for installing a package could look like this:

WinGetPackageManager packageManager = new WinGetPackageManager();
packageManager.InstallPackage("Git.Git");

WinGetSourceManager:

The WinGetSourceManager class is used for everything that has to do with sources.
It can list, add, update, export, reset and remove sources.

To use the add, remove and reset functions, the process needs to have administrator privileges.
(WinGet can’t perform these actions without administrator privileges)

The code for adding a source could look like this:

WinGetSourceManager sourceManager = new WinGetSourceManager();
sourceManager.AddSource("msstore", "https://storeedgefd.dsx.mp.microsoft.com/v9.0", "Microsoft.Rest");
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 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

This package is not used by any NuGet packages.

GitHub repositories (2)

Showing the top 2 popular GitHub repositories that depend on WGet.NET:

Repository Stars
nkdAgility/azure-devops-migration-tools
Azure DevOps Migration Tools allow you to migrate Teams, Backlogs, Work Items, Tasks, Test Cases, and Plans & Suits from one Project to another in Azure DevOps / TFS both within the same Organisation, and between Organisations.
yoshiask/FluentStore
A unifying frontend for Windows app stores and package managers