WGet.NET
4.1.0
See the version list below for details.
dotnet add package WGet.NET --version 4.1.0
NuGet\Install-Package WGet.NET -Version 4.1.0
<PackageReference Include="WGet.NET" Version="4.1.0" />
paket add WGet.NET --version 4.1.0
#r "nuget: WGet.NET, 4.1.0"
// Install WGet.NET as a Cake Addin #addin nuget:?package=WGet.NET&version=4.1.0 // Install WGet.NET as a Cake Tool #tool nuget:?package=WGet.NET&version=4.1.0
WGet.NET
β What is WGet.NET
WGet.NET is a WinGet wrapper library for .Net that allows you to easily install, update, uninstall and more, with the help of WinGet, from your application.
I created it for another project and then made a library out of it in the hope it might be useful to someone else too.
If you miss a feature or find a problem with the library, feel free to create an issue.
β¨ Version 4.0
Version 4.0 is intended as a βhealthβ update for the library and therefore includes changes to the structure, classes and functions.
This includes breaking changes to the usage of the library.
But fear not, no functionality is lost and all breaking changes are documented and provide information on how to change the implementation.
You can find the full migration documentation here.
This was done to improve maintainability and the experience of using the library, by improving the data structure, removing redundant or useless functions and making the implementation more consistent.
More information about version 4.0 can be found here.
π Documentation
https://basicx-strgv.github.io/WGet.NET/
β‘ Features
- 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
- Download package installers
- Manage pinned packages
- Access info of the WinGet installation
- Other
- Asynchronous Execution
π¦ 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 main classes that are used to perform actions or get information with winget, plus additional classes that are needed.
Exceptions are located in the WGetNET.Exceptions
namespace.
WinGetInfo:
The WinGet 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:
WinGet winget = new WinGet();
if (winget.IsInstalled)
{
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");
Find Latest Versions of a Package:
Using the WinGetPackageManager class you can use the GetInstalledPackages
capability to get the latest version of a package and then retrieve the version number from the AvailableVersionObject
property.
You would then be able to compare this to the current version of the package (VersionObject
property) and determine if you need to notify users of an available upgrade.
WinGetPackageManager packageManager = new WinGetPackageManager();
string packageId = "nkdAgility.AzureDevOpsMigrationTools";
WinGetPackage package = packageManager.GetInstalledPackages(packageId, true).FirstOrDefault();
if (package.AvailableVersion > package.Version)
{
Console.WriteLine("You are currently running version {currentVersion} and a newer version ({latestVersion}) is available. You should update now using Winget command 'winget {packageId}' from the Windows Terminal.", package.Version, package.AvailableVersion, packageId);
}
Product | Versions 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. |
-
.NETCoreApp 3.1
- System.Security.Principal.Windows (>= 5.0.0)
-
.NETStandard 2.0
- Newtonsoft.Json (>= 13.0.3)
- System.Security.Principal.Windows (>= 5.0.0)
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
|
Version | Downloads | Last updated | |
---|---|---|---|
4.2.0 | 1,080 | 9/11/2024 | |
4.1.1 | 456 | 8/27/2024 | |
4.1.0 | 1,804 | 4/13/2024 | |
4.0.1 | 1,154 | 1/17/2024 | |
4.0.0 | 147 | 1/15/2024 | |
3.2.0 | 654 | 11/4/2023 | |
3.1.0 | 211 | 10/19/2023 | |
3.0.0 | 195 | 10/17/2023 | |
3.0.0-alpha2 | 130 | 10/13/2023 | |
3.0.0-alpha1 | 128 | 10/13/2023 | |
2.3.0 | 298 | 5/23/2023 | |
2.2.0 | 184 | 5/8/2023 | |
2.1.0 | 231 | 4/23/2023 | |
2.0.3 | 210 | 4/22/2023 | |
2.0.2 | 667 | 9/18/2022 | |
2.0.1 | 493 | 6/14/2022 | |
2.0.0 | 495 | 2/26/2022 | |
1.2.0 | 420 | 9/7/2021 | |
1.1.0 | 399 | 9/5/2021 | |
1.0.1 | 410 | 6/21/2021 | |
1.0.0 | 466 | 6/19/2021 |