Windows 7 само / автоматическое обновление исполняемого файла - PullRequest
0 голосов
/ 15 октября 2011

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

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

Ответы [ 2 ]

0 голосов
/ 08 апреля 2016

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

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

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

0 голосов
/ 15 октября 2011

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

...