Некоторые вопросы:
- Пользователи работают с программным обеспечением локально, но файлы находятся в сетевой папке на вашем сервере?
- Они удаленно подключаются к тому же серверу, к которому вы хотите подключиться, и выполняете его там?
- Если 2. они исполняют файлы, расположенные на сервере, или копируют их в «личную папку»?
Если вы не можете изменить расположение файлов, и все подключаются, и все исполняют файлы на месте, у вас есть проблема. Пока программа запущена хотя бы одним пользователем, файлы будут заблокированы. Вы можете обновлять файлы только после того, как все вышли.
Если, с другой стороны, пользователи могут запускать свои собственные личные копии файлов, то я бы настроил систему, в которой у вас есть центральная папка с последней версией файлов, и когда пользователь запускает его программа проверяет, есть ли в центральной папке более новые версии, чем собирается выполнить пользователь. Если это так, сначала скопируйте новую версию.
Или, если это займет слишком много времени, и пользователь станет нетерпеливым (что, да, пользователи нетерпеливы?), Тогда программа будет проверять версии после запуска и напоминать пользователю о выходе из программы. В этом случае программа установит флаг, который при следующем запуске будет выполнять копирование, только теперь пользователь осознает, что это происходит.
Копирующая часть легко может быть обработана либо наличием отдельного исполняемого файла, который выполняет фактическое копирование, и выполнением этого вместо этого, либо программа может временно скопировать себя в другое место и запустить эту копию с параметрами, которые говорят «обновить исходные файлы». ».