自从Windows 95以来,我的程序自定义了自动更新功能。它曾经工作正常,直到Vista和Windows 7.它基本上做的是下载新的可执行文件,创建批处理文件和执行它。批处理文件只是等待父可执行文件关闭(通过不断尝试删除它),然后将下载的新文件移动/重命名为旧文件。甚至运行新下载的。多年来一直很好。但Windows 7并不是真的喜欢我这样做。有一点是它“知道”可执行文件不再相同(即使它们的名称和路径相同)。
有没有办法通过将可执行属性/权限复制到新的可执行属性/权限来静默替换可执行文件,以便Windows 7不会抱怨它是一个不同的exe? (当然我需要这个用于自动更新功能,所以我也对其他方法持开放态度)
答案 0 :(得分:0)
答案 1 :(得分:0)
不确定您所描述的警告但我遇到了问题,我将更新放在一个单独的目录中,该目录打破了任务栏中的固定项目。
一种方法是让瘦加载器安装一次,然后将更新的程序加载到自己的内存空间。这样,如果固定在任务栏中,它将被识别为相同的程序。
我只熟悉使用.NET AppDomain,但我认为大多数其他运行时也可以这样做。