-
Notifications
You must be signed in to change notification settings - Fork 85
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Question: Does this library have the ability to NOT execute the executable? #229
Comments
Hi @pagner, thanks for your question! Technically, this behavior isn't officially available. However, depending on your needs, you should be able to make it work by:
How you then update the files when your executable is currently running (an already tricky thing -- you can't exactly overwrite an executable that's currently running) would be left up to you. Ideally, we'd support zips on Windows (see #183), but that's a little tricky to support in a batch script. In other words, it's technically possible, but you're going to have to do much of the legwork for the actual updating. It'd be great if we supported actual application updating out of the box, sort of like Sparkle on macOS, but doing that in a cross-platform way that works well and such would be...very difficult, and it is outside the scope of my time or energy right now with my limited time. (Contributions always welcome, of course.) If you decide to implement this and want to contribute back, that'd be great! |
In other words:
|
Hi @Deadpikle, What I did was create an avalonia app as my "Updater". In my main program I check a json file hosted on my server. If the version is newer I launch the updater from my main program and then exit the main program. The updater UI is a small window with a progress bar and text. It downloads the zip file and extracts it to a temp directory using WebClient and System.IO.Compression.Zipfile. Once extracted I iterate through the directories and create a manifest. Working from the manifest I then delete the "old" files and move the update files to their locations. I then delete the temp directory, launch the main app and exit the updater. It works well (tested on Windows, Mac and Linux). This is the same approach I used many moons ago, although I was using XML instead of json back then and I was only supporting Windows. Technically my "Updater" is an installer.. lol Thanks again! |
You're welcome! I'll go ahead and close this since it is resolved. :) |
Please correct me if I'm wrong but netsparkle seems like it is expecting an "installer" file to be downloaded and executed.
Is it possible to just download all the update files and restart the main program?
I would like to have a manifest (appcast) that may only contain a few new libraries, maybe some assets and of course the .exe, or dll (linux, mac)
.NET only requires a restart to consume the new files and "update". I don't need/want to build an "installer" that is executed by netsparkle.
I have done this in the past with a winforms app, but that was some time ago.
Is this possible with netsparkle? I didn't see any sort of hierarchal path tag in the appcast file for target files to be placed.
Thanks in advance
The text was updated successfully, but these errors were encountered: