handyorg / handywinget Goto Github PK
View Code? Open in Web Editor NEWGUI for installing apps through WinGet and Creating Yaml file
License: MIT License
GUI for installing apps through WinGet and Creating Yaml file
License: MIT License
When Handy is loading, during initial manifest parsing, it crashes. The following error was found in the event viewer:
CoreCLR Version: 5.0.321.7212
.NET Version: 5.0.3
Description: The process was terminated due to an unhandled exception.
Exception Info: Newtonsoft.Json.JsonReaderException: Bad JSON escape sequence: \x. Path 'Description', line 1, position 267.
at Newtonsoft.Json.JsonTextReader.ReadStringIntoBuffer(Char quote)
at Newtonsoft.Json.JsonTextReader.ParseString(Char quote, ReadType readType)
at Newtonsoft.Json.JsonTextReader.ReadStringValue(ReadType readType)
at Newtonsoft.Json.JsonTextReader.ReadAsString()
at Newtonsoft.Json.JsonReader.ReadForType(JsonContract contract, Boolean hasConverter)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value)
at HandyWinget.Views.Packages.<>c__DisplayClass16_0.<<LoadLocalManifests>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at HandyWinget.Views.Packages.LoadLocalManifests()
at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__140_0(Object state)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.Run()
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run()
at HandyWinget.App.Main()
Freshly installed version 3.2.2.0 - intstalled using winget
When accessing the Packages tab, downloading starts and finishes, but then extracting manifests never finishes.
If I go to the General tab and back to the Packages tab, while this extraction goes on, the app crashes and closes the window.
Please fix this tab to only show packages that have a Package Name.
Currently theres blank ones until index number 12.
Please fix the "Show Only Installed" button on the Packages tab.
Currently it shows 0 entries when I have about 10 winget packages installed.
I have Git 2.32.0 installed and 2.32.0.2 is available. The winget CLI shows this with a column for installed and a column for available. However, this GUI just shows the availble version and has the installed column checked which gives the impression that the latest version is installed when it isn't.
Would it be possible to view the packages installed through winget.
Something like what exists in the chocolatey gui.
Thanks.
The user must be able to select and install the application architecture.
Hi!
When you try to install for example 7-Zip beta trough the gui there is an error with version number not found.
The main problem is that the generated command looks like this:
winget install 7zip.7zip.Alpha.exe -v 21.04 beta
While it should be like this:
winget install 7zip.7zip.Alpha.exe -v "21.04 beta"
This is a nice app, thank you, it's just that Packages
-> Installed
could really use the Upgrade selected packages
button (and perhaps Select all
, Select None
and Invert selection
to upgrade multiple packages at once.
No matter which "Show Installed Package" method I choose in settings, the installed packages are never checked.
Looking at pgAdmin4, the latest version in the available versions list is 4.3.0.0 but in the "Latest Version" column it says the latest version is 4.29.0.0.
It is better to use API instead of manifest files
API will be introduced by Microsoft soon
Hi, great idea... :-) will HandyWinGet be able to check for app updates for my installed apps?
Hi @NaBian please rename repo to HandyWinGet-GUI
I don't have enough access to do that
In version 4, we will use MSIX source instead of cloning the repo To extract manifests
When the back button is enabled, pages should be cached and not re-created
When clicking the 3x3 square icons at top left, it selects all items in view - as expected. But if I want to reverse the process, I can't - I have to manually deselect everything (or restart client). Can this be changed to both select and deselect all, depending upon the last action used (IOW: If not used, it becomes select all, if already used once to select all, it becomes deselect all, and if it was last used to deselect all, it becomes normal select all again)?
Is there a reason the drop down boxes for Architecture as as wide as they currently show? If not, can it be reduced?
Can column widths be made persistent? After I adjust them to where I want them, upon app restart they are back to 'default' settings.
In src/HandyWinget/Common/Helper.cs, line 314; "Name" string is hard coded, however, winget process does not always return "Name" as the header. Instead, its output depends on locale.
try
{
string input = _wingetData.Substring(_wingetData.IndexOf("Name"));
var lines = input.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).Skip(2);
return lines;
}
When i starts the program it will closed after a while 3 sec
When I run a command line "winget search pgadmin4" it shows the latest version as 5.2 but HandyWinGet show the latest as 5.1 and doesn't show 5.2 at all in the drop-down.
For some reason, some packages are blank rows. (see #1)
HI,
good work on 3.3.0.0. I have a feeling this bug report is not related to HWG directly, but to WinGet / parsing of metadata / some other issue.
Using 3.3.0.0, and selecting Show only installed button at bottom right, I get a lot of apps listed that are actually not installed.
I suspect, from the NetGear and RivaTuner uninstall routines, that what is actually happening is that there are either false positives in the scan for installed items, or else some of these items are a part of other actual installations versus being installed manually / on their own.
If I can provide logs, or anything like that, please let me know.
Also, a couple of these do not show up in 3.2.2.0:
dnGrep, GoLang, Git, Billi, and TIM do not show as installed in 3.2.2.0
Is it possible to use a program UUID instead, or do most of these not have an associated UUID to hunt down?
once I open handywinget and it says "downloading database" within seconds it crashes and the program closes itself.
not sure where to find the log to provide more info, the application directory is empty
The only release available in the winget CLI is still 1.3.0.1 and there is not MSI on the 2.0.0.0 release page.
First of all, HWG is awesome and a huge shout out for your hard work!
While I was reading its code, I found that this project is using PascalCase
for argument names, rather than the default camelCase
naming scheme (at least in Visual Studio and Rider’s), this may introduce inconsistency while someone’s trying to contribute new code to this repo.
I don’t personally consider PascalCase
to be good for variable names since it may cause you to mix variables and class/type names but it’s really down to personal preferences.
Adding a .editorconfig
file can explicitly set the naming scheme preference for the project, make IDE automatic formatting work better and save time for developers, and I think that you might be interested in it. It will also make Rider complain less with its more strict syntax checking system.
Visual Studio also provided a template, you can directly create one in the Add File menu.
Every time I open the app, any settings I have selected are back to their defaults. This includes Pane Display Mode and Show Installed Package.
I plan to continue developing this app by WindowsAppSDK
The reason for this is
@tardis4500 @JohnLGalt What do you think about this?
First launch is General (options) tab.
Should be packages by default, or at least have intallation option to select packages by default.
This first-run design is offputting to casual users.
I have WinMerge installed and when I do a "winget list WinMerge" it reports that 2.16.12.0 is installed. But the GUI reports that 2.16.6 is installed. This is true even though I have selected the "Winget-cli Method" for the Show Installed Package option.
I am running 3.0.1.0 and when I use the Check for Update button it says I have the latest version even though 3.0.2.0 is available. When I look at the package availability in winget all I see are versions 1.3.0.1 and 2.1.0.0. So the only way to install the new version is to download the rar file and extract the executable into the correct directory.
HWG pulls data from WG repository - I get that. However, a few items I have installed a shown as installed by HWG more than once - perfect example is Discord, which I only have the Public Test Build installed, but HWG is reporting I have both PTB and regular release installed, which have 2 different versions:
Is there any way to differentiate?
For example, for Discord PTB, the uninstaller has PTB in name string:
Computer\HKEY_USERS{MY UISER STRING}\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\DiscordPTB
I realize that the User string will be variable for every single user across a multitude of Windows installations, but if therre were a way to get the string anyway, it would help preventing duplicate versions being reported as installed.
If it cannot be done, now worries, just close this out - I figured I'd ask, and won't complain if there is not real way to accomplish this.
I'm running 2.2.0.0. When I click "Check For Update" I get the popup for the new version. If I select "Confirm" the app just closes. This happens whether I run as Administrator or not. I had the same problem upgrading from 2.0.0.0 to 2.2.0.0. I had to download the installer from the website.
Running:
WinGet install handywinget
installed old version (3.2.2.0) not 3.4.0 (latest).
Log:
Microsoft Windows [Version 10.0.19043.985]
(c) Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>WinGet install handywinget
Found HandyWinget [HandyOrg.HandyWinget-GUI]
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licences to, third-party packages.
Downloading https://github.com/HandyOrg/HandyWinGet/releases/download/v3.2.2.0/Setup.msi
██████████████████████████████ 54.0 MB / 54.0 MB
Successfully verified installer hash
Starting package install...
Successfully installed
C:\WINDOWS\system32>WinGet upgrade handywinget
No applicable update found.
Does no installer for it exist?
When I click on the search bar and type in one character, the application freezes, then the application closes. I included a video demonstrating the bug.
I installed the v4.0.0-beta.1 release, but the "About" page shows the version number as 3.4.0.0
When the "Check For Update" button is clicked it states that a new update is available. This is despite the downloaded installer being v4.0.0-beta.1
I'm pretty sure this is the v4.0.0-beta.1 release as:
-it needed .NET 5.0
-it has the features added in that release (Group Packages by publisher, Download with IDM, etc...)
The 3.4.1 zip file has 3.4.0 in it so after install it still says a newer version is available.
see column #3 "${env:THE_AUTHOR}"
It would be nice if this app could update itself.
I installed via WinGet but no Start Menu items were created, using search for "Handy" returns nothing, and it's not like the installer told me where it was installing the executable. How do I run this thing?
The "Show Only Installed" checkbox at the bottom right of the package window is ignored by default.
With it left selected, if I navigate away from the packages tab then back to packages, it'll load all packages, even those not installed. I have to then unselect "Show Only Installed" and re-select it to only see installed packages.
This is the case using either the internal method or the winget cli method for internal packages
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.