Here is how I've done it in the past.
Program files are stored on a network drive that is available to everyone. In our case it was the K drive with the following folders:
K:\PBApps\Appname
K:\PBApps\Appname\version1
K:\PBApps\Appname\version2
The two version folders have copies of the exe & pbd files.
The Appname folder has a .bat file that launches the application from one of the version folders, the one that is current. The shortcut on end users desktop points to the .bat file.
So if version1 is current, I would copy the new exe into version2 and then modify the .bat file to point to version2. Then I would send an email to all users letting them know that they need to logout and back in to pick up a new version.
At a previous employer we used a program which was a windowless app that read a .ini file to determine which version folder to launch the app from. The advantage to that approach was that it had the same program icon making shortcut creation easier.
I hope I can find a way to make update process smooth without interrupting program usage with a restart.
The EXE file is locked by the operating system when someone is running it.
When an object is instantiated for the first time, the PBD is loaded into memory so the file is never accessed again.
Maybe I popup a messagebox() after update and suggest users to restart their applications then. Thanks