У нас есть собственное приложение Fattracs, которое используют 10-30 пользователей Citrix. У всех пользователей запускается собственный инстанс. EXE-файл находится на нескольких серверах с Windows 2003 R2 с балансировкой нагрузки Citrix. При выходе новой версии необходимо заменить exe-файлы. Если пользователей мало, то обычно работало изменение exe-файла на лету. Затем новые пользователи получили новые версии, а существующие пользователи должны перезапустить, чтобы получить их. Но у многих пользователей Windows может каким-то образом заблокировать exe-файл. Затем мы должны выгнать всех пользователей перед изменением.
Тот, кто знает причину и даже лучше, как ее решить? У нас есть несколько общих файловых ресурсов каталога для бывших, поскольку мы не хотим постоянно использовать удаленный рабочий стол для доступа к нему. Это что-нибудь значит?
Используйте команду net file на сервере, на котором размещен общий файл, чтобы узнать, у каких пользователей этот файл открыт.
Используйте команду «net file / close» в том же поле, чтобы принудительно закрыть любой сеанс, возвращенный первой командой.
После этого вы сможете обновить файл.
C:\Users\tf>net file /?
The syntax of this command is:
NET FILE
[id [/CLOSE]]
Или используйте раздел «Общие ресурсы» в «Управление компьютером», чтобы добиться того же.
Ты можешь использовать ручка чтобы узнать, кто блокирует файлы. И даже снять блокировку. Увы, это небезопасная операция. Возможно, пользователь, запускающий приложение, динамически загрузит DLL, которую вы только что заменили несовместимой версией. Я не думаю, что это связано с общим ресурсом (утилита handle сообщит вам об этом), и я не знаю решения этой проблемы :-(.
Посмотреть на то GNU Emacs делает.
Когда он запускается, он ищет более новую версию; а emacs-
версия.exe
где версия новее, чем текущая версия. Затем они устанавливают emacs.exe
и emacs-
версия.exe
и жаловаться только в том случае, если последний не может быть установлен.
Для собственных нужд, если у вас нет версий, просто подумайте о поиске main-1.exe
, и в противном случае main-2.exe
и так далее, и просто создавайте новый файл всякий раз, когда он будет установлен. Марка main.exe
поиск версии с наибольшим номером.
Ваш установщик также может удалить старые main-
N.exe
файлы, если хотите.