Почему иногда exe-файлы заблокированы окнами?
У нас есть собственное приложение Fattracs, которое используется 10-30 пользователями через Citrix. Все пользователи имеют собственные инстансы. Exe-файл находится на нескольких серверах с Windows 2003 R2, который сбалансирован нагрузкой Citrix. Когда приходит новая версия, exe-файлы должны быть изменены. Если было всего несколько пользователей, он использовал для изменения exe-файла на лету. Затем новые пользователи получают новые версии, а существующие пользователи должны перезапустить, чтобы получить его. Но у многих пользователей Windows может как-то заблокировать exe-файл. Затем мы должны выгнать всех пользователей до изменения.
Кто-то, кто знает причину и даже лучше, как ее решить? У нас есть несколько файловых ресурсов в каталоге для exes, так как мы не хотим постоянно использовать удаленный рабочий стол для доступа к нему. Это что-нибудь значит?
3 ответа
Используйте команду "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
файлы, если хотите.