5

I know this question has been asked lots of times but mostly I couldnt find the answer I was looking for.

How do popular applications update themselfs ? I found some libraries that update applications but mostly they just replace all the application files. This way my Updater would need to download around 200mb everytime.

Also ClickOnce is used a lot but this in my oppinion is an ugly way to update and install because the GUI is not really fancy and you can't even specify where to install the application.

I know some applications also replace the installer and just run the new one to deinstall the old version and install the new one but that cant be that right way...

So how do Programs like Mobirise, Discord or Teamspeak update themselfs ?

Jan1902
  • 193
  • 1
  • 16
  • just like you said - replace files. if it's binaries, i really can't see an alternative to fully replacing them with a newer version. do you really have 200mb of compiled binary files in your application ? wouldn't it be wiser to slice it down to smaller chunks ? this would make things a lot easier to update. – Stavm Jan 22 '17 at 15:41
  • No, youre right. The Release folder has a size of around 20mb but in what way would the application be installed ? So how would the folder structure look like later ? – Jan1902 Jan 22 '17 at 15:45
  • You are probably the only one to now how to structure it. one idea would be to separate the concerns of the application to DLLs . say you have a class that only does .rtf to .pdf conversions - why not compile it to a dll of its own, have the main binary use that. if tomorrow you decide to refactor the rtf to pdf method, you can simply update that specific dll (as long as you keep the signature structure) – Stavm Jan 22 '17 at 15:50
  • Thats a good Idea but I always feel like there must be a better, more professional way, the way other companies do it. You know what i mean ? – Jan1902 Jan 22 '17 at 15:53

2 Answers2

1

I have a have made a POS Solution(C#), working in 4 Shops. This is what i've done to give client side updates. Used Google Drive to upload installer file + a text file mentioning installer version, once uploaded each time the programe starts up it downloads the version text file from Google Drive, if it doesn't match the current version of the software which the clients Has, Messagebox Prompts a newer version is avaliable. Client then can click Upgrade and it will download the installer file, once downloaded software exits completely calling a python script which will Run the installer file. This is not the best way but it works, becouse Google Drive has its own file version history which makes it easy for me to keep track of updates i send. Hope I Helped <3

Udantha
  • 77
  • 1
  • 4
  • 12
  • Thats the idea i mentioned earlier but does the setup.exe or setup.msi contain all the resources and dll's used in the project ? And also that is an ugly way to do it because the user has to click through the whole installation again – Jan1902 Jan 22 '17 at 16:18
  • Yea, the msi file has all resources. And no, the user doesn't have to click through the entire process because once a setup is called from python you can set it to install automatically via python using '-i' – Udantha Jan 24 '17 at 13:14
0

You can design the application to be patchable. Patching is not a hot flavour in windows world.

Community
  • 1
  • 1
Vijay
  • 523
  • 4
  • 13
  • So could have a common setup.exe or setup.msi that installs the application and puts all the dlls and so into the application folder and have another application in there that updates the main applications files in the application folder ? So i have a pre made application folder like it would we created on the users pc on the server ? – Jan1902 Jan 22 '17 at 16:51