2010-08-04 4 views
2

Я использую экран установки для обновления приложения.Установка экрана не может заменить заблокированный файл

У меня есть сервер ws2003, у нескольких пользователей есть доступ одновременно.

Когда другие пользователи запускают мое приложение, я могу запустить процесс обновления, установить экран, чтобы узнать, что файлы заблокированы и создает временную версию новых файлов (это файлы app.configs, автоматически создаваемые во время установки) в каталоге приложения. Он должен заменить эти файлы после перезагрузки компьютера, однако, когда я запускаю компьютер, снова исчезают временные файлы, а новая версия файлов пуста, поэтому моя авария приложения.

Странно, потому что когда-то я пробовал этот механизм в другом приложении, но там я заменил простой файл dll, и он сработал.

Что можно сделать для преодоления этой проблемы?

ответ

1

Очень простое решение - использовать два исполняемых файла (или пакетный файл и исполняемый файл). Первый exe/пакет ищет новые версии файлов и переименовывает их, а затем запускает реальный exe.

+0

Спасибо за ваш ответ, однако у меня есть вопрос. Что именно представляет собой предлагаемый процесс: я понимаю, что во время обновления я должен использовать два исполняемых файла, но что именно должна делать первая версия? – Darqer

+0

Первый exe заменяет файлы, которые блокируются вторым exe. Таким образом, вы можете загрузить их во втором exe, сначала запустить и снова выйти. Он заменит файлы (теперь разблокированные) и запустит второй exe. Обратите внимание, что второй exe может обновить первый exe, поскольку он больше не используется при запуске обновления. Если вы используете BAT-файл, используйте 'start' для запуска второго exe в фоновом режиме. –

Смежные вопросы