Назад | Перейти на главную страницу

Почему иногда exe-файлы блокируются окнами?

У нас есть собственное приложение 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 файлы, если хотите.