Need advice on how to update my WPF app from .net6 to .net8 with minimal disruption to users
Hello. I tend to work more in asp.net, but a couple of years ago I was asked to build a WPF application that is distributed to ~1500 users. I chose .net6 at the time as it was the latest LTS. Because of a lot of weird customizations that were required, I also built my own updating framework for it. For two years this has been fine, but now I'm being asked to upgrade it to .net8 LTS.
This presents some challenges. My application is 12MB because the installer would install .net6 desktop runtime (I'm using Advanced Installer). It's a single file application. I now need to figure out the best way to update this for all users to .net8.
I am able to push out updates to my application just fine, but I don't have a good sense for how I can upgrade to .net8. My first thought was to include it in the app, but now my size went from 12MB to something like ~184MB. This is difficult because every update would now require the full .net version, presumably. I looked into trimming but I guess that isn't supported for WPF, of course.
I also thought about maybe triggering a download of the .net8 runtime. This could work, but it's going to be really rough for us because a lot of my users have very locked down admin permissions and they tend to have very little technical knowledge. It would drive a lot of support phone calls which I would very much like to avoid.
What I'm looking for here is general advice on how you might approach this problem. I'm in the research phase right now and trying to gather all my options to see which one is best (or least worst, depending on your view). I really appreciate any advice you can give me on how to deal with this challenge. Thanks for reading 🙂
6 Replies
there isnt really another option other than either bundling the runtime with the app or having the installer install it
doesnt the advanced installer updater require admin perms anyway?
It does, you're right. Typically we work with the customer's IT folks to do the initial installation. My hope was to avoid needing their assistance for this update though.
how do you typically push an update?
you mentioned you rolled your own updater but that you also use advanced installer, i didnt quite understand
either way those are your only 2 options
wpf doesnt support trimming unfortunately
So for the initial install, I am using Advanced Installer which will install the .net6 desktp runtime. Then, each time the app wakes up, it checks a url to see if there's a new update available. If so it will download it and theres a companion executable that will handle the updating. However, this wasn't meant for any .net updates (or anything requiring admin perms).
Your conclusion is what I ultimately reached and what inspired my post - checking to see if there were any alternatives out there I was overlooking.
ah yeah no unfortunately there isn't
All good. Hoping for some miraculous solution that isn't there. Appreciate your time, @sibber 🇵🇸 .