NetSparkleUpdater / NetSparkle

NetSparkle is a C#, cross-platform, highly-configurable software update framework with pre-built UI for .NET developers compatible with .NET 4.6.2/.NET 6+, WinForms, WPF, and Avalonia; uses Ed25519 signatures. View basic usage here in the README and try the samples for yourself.
https://netsparkleupdater.github.io/NetSparkle/
MIT License
609 stars 84 forks source link

TestApplication doesn't open release notes window on first run #66

Closed Deadpikle closed 4 years ago

Deadpikle commented 4 years ago

Not sure yet if a bug in NetSparkle or in the test application

PeterJarrettUK commented 4 years ago

I'm seeing the same here - It's happening on the WPF version, the window opens briefly when created via the WPF UIFactory, and UserWIndow.Show on line 957 in NetSparkle.cs, but when code completes that thread (line 975 in NetSparkle.cs) the window is closed.

I can't see that it's being .Closed anywhere, so I wonder if the garbage collector is somehow deciding it's not needed?

Deadpikle commented 4 years ago

Ah -- I just started working on the WPF version last night, and it's still buggy/not finished. The issue with the window not popping up I have fixed in my local copy, but not in a way that makes me satisfied.

ShowUpdateNeededUIInner needs to have this added after UserWindow.Show():

System.Windows.Threading.Dispatcher.Run(); // should happen somewhere else...
 // https://stackoverflow.com/questions/1111369/how-do-i-create-and-show-wpf-windows-on-separate-threads

I'm still working on it. 😅 The WinForms version runs better right now. As you'll see, the update window is entirely blank right now for the WPF UI.

PeterJarrettUK commented 4 years ago

I'm still working on it. 😅 The WinForms version runs better right now. As you'll see, the update window is entirely blank right now for the WPF UI.

Ah yes, in the WPF test application, I've just added a reference to the Winforms Factory assembly and changed to using that - so i'm using a hybrid of the WPF test app with the WinForms factory, and all seems to work really well

Deadpikle commented 4 years ago

Ah, I can see how that could be confusing. The idea is to split the updating logic from the UI, and you can pick whichever UI you want. That's not clear from the naming scheme or documentation. I'll keep that in mind as I keep working on it.

PeterJarrettUK commented 4 years ago

That's ok, it does all make total sense - I like the abstraction of splitting the two - presumably at a later stage if I wanted to implement it via some other magic system - something really daft like a GPIO device or something daft! - then I could then roll a custom UI factory.

I should have been clearer with my message - I meant that having swapped the UI factory over the WinForms one, it proved that all the other parts were ok, and just confirming your own findings that it's the WPF UI factory at fault, not the basic principle :)

Deadpikle commented 4 years ago

Fixed as of 3b3dc283