Исполняемый файл с автоматическим обновлением для Windows 7

#windows-7 #batch-file #exe #auto-update

#windows-7 #пакетный файл #exe #автоматическое обновление

Вопрос:

У меня была настраиваемая функция автоматического обновления для моих программ начиная с Windows 95. Раньше он работал нормально, до Vista, а затем Windows 7. В основном он загружал новый исполняемый файл, создавал пакетный файл и выполнял его. Пакетный файл просто ждал закрытия родительского исполняемого файла (постоянно пытаясь его удалить), а затем переместил / переименовал загруженный новый файл в старый. И даже запустите недавно загруженный. Это работало нормально в течение многих лет. Но Windows 7 на самом деле не нравится, когда я это делаю. Одна вещь заключается в том, что он «знает», что исполняемые файлы больше не совпадают (хотя их имена и пути одинаковы).

Есть ли способ незаметно заменить исполняемый файл на новый, скопировав свойства / разрешения исполняемого файла в новый, чтобы Windows 7 не жаловалась на то, что это другой EXE-файл? (Конечно, мне это нужно для функции автоматического обновления, поэтому я открыт и для других подходов)

Ответ №1:

Хм, ClickOnce с .NET отлично подходит для этого… Однако не знаю, что вы подразумеваете под Windows 7, жалуясь на exe.

Комментарии:

1. Нет, @dan, .NET — это не мое. Под exe я имел в виду обычный файл Windows .EXE.

Ответ №2:

Не уверен в описанных вами предупреждениях, но у меня возникли проблемы, когда я поместил обновление в отдельный каталог, который сломал закрепленный элемент на панели задач.

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

Я знаком только с использованием .NET AppDomain, но я предполагаю, что большинство других сред выполнения также могут это делать.