Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 454563
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 12, 20262026-05-12T22:17:00+00:00 2026-05-12T22:17:00+00:00

Our software is not ever officially installed on Windows, and currently has an update

  • 0

Our software is not ever officially installed on Windows, and currently has an update model like this:

  1. Connect to Internet

  2. Click an Update Button

  3. Connect to server-side program

  4. Server-side program creates an md5 hash list of all the files in
    the server program directory.

  5. Client-side program creates an md5 hash list of all the files in
    the client program directory.

  6. A comparison is done to see if a file needs updated, removed from, or added
    to the client’s machine, and it does so until complete.

Well, I would like to move to a model I see used more frequently these days where the software is officially installed and something like this happens:

  1. When an internet connection is detected, the program will automatically query the
    server to see if there is an updated installation package.

  2. If so, ask the user if they would like to download the new install.

  3. If no, do nothing, if yes, download new install.

  4. Programatically uninstall the old program and start the install of the
    new package.

The part I need advice on is number 4 above. What is the best way to programmatically uninstall the old program and start the installation of the new program, while running the original program. I assume there must be some intermediary program that does all the work (shutting down the current program, running it’s uninstaller, then starting up the new installer) Is there a better way? I just want to move to a model where we update in full installs and not just files – this will allow us to version our software easier and keep self-contained installations to revert to at any point.

Thanks for your advice!

EDIT: Related question – what’s the easiest way to find the install UUID for a particular install?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-12T22:17:00+00:00Added an answer on May 12, 2026 at 10:17 pm

    The way I did it was to have a separate program (let’s call it StartUp.exe) that checked for updates and then loaded the real software (let’s call that Program.exe). StartUp.exe had the same icon as Program.exe and was the executable that was pointed to by the desktop shortcuts and menu items, using the same name as Program.exe.

    So the sequence went something like this:

    1. User double-clicks desktop shortcut or menu item that looks like Program.exe and is called the same name but is actually StartUp.exe
    2. StartUp.exe runs and checks if there are any updates
    3. If there are updates, it simply copies then across (we built a nice system with progress bars but you could simply copy the new files over the old files)
    4. StartUp.exe then runs Program.exe
    5. StartUp.exe then exits

    This has the advantage that none of your program files are locked because the loader program is actually a different program. The user is none the wiser because they run a program that looks like and is called the same as the program they want to run and the end result is the program they want does run and is guaranteed to be the most up to date version.

    Doing it with an update button would be more complex but we needed to force the most recent version of the program to be the one running (due to database differences between versions) so forcing update on startup worked for us.

    I believe the way to do it these days is to use ClickOnce deployment but I’ve never tried that – it wasn’t available when I wrote my system and this method was simple and worked well.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 234k
  • Answers 234k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer Well, for one thing System.arraycopy(...) works on arrays, and Collection.addAll()… May 13, 2026 at 5:57 am
  • Editorial Team
    Editorial Team added an answer The request alone isn't a problem, especially that the alternative… May 13, 2026 at 5:56 am
  • Editorial Team
    Editorial Team added an answer SELECT COUNT(DISTINCT col1, col2, col3) FROM mytable May 13, 2026 at 5:56 am

Related Questions

We have updated our servers with Windows 2008 Server, but we are still using
I have an internal WPF client application that accesses a database. The application is
I currently work for a bespoke software agency. Does anyone have any experience of
I know my question is too inaccurate to answer but let me give you

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.