【问题标题】:Windows 7 self/auto updating executableWindows 7 自我/自动更新可执行文件
【发布时间】:2011-10-14 20:37:19
【问题描述】:

自 Windows 95 以来,我的程序就有一个自定义的自动更新功能。它曾经可以正常工作,直到 Vista 和 Windows 7。它基本上所做的是下载新的可执行文件,创建一个批处理文件并执行它。批处理文件只是等待父可执行文件关闭(通过不断尝试删除它),然后将下载的新文件移动/重命名为旧文件。甚至运行新下载的一个。这工作了好几年。但 Windows 7 并不喜欢我这样做。一件事是它“知道”可执行文件不再相同(即使它们的名称和路径相同)。

有没有办法通过将可执行文件的属性/权限复制到新的可执行文件来默默地用新的可执行文件替换,这样 Windows 7 就不会抱怨它是一个不同的 exe? (当然我需要这个来实现自动更新功能,所以我也愿意接受其他方法)

【问题讨论】:

    标签: windows-7 batch-file exe auto-update


    【解决方案1】:

    嗯,带有 .NET 的 ClickOnce 非常适合这个...不过,不知道 Windows 7 抱怨该 exe 是什么意思。

    【讨论】:

    • 不,@dan,.NET 不是我的菜。 exe 是指常规的 Windows .EXE 文件。
    【解决方案2】:

    不确定您描述的警告,但我将更新放在单独的目录中时遇到了问题,这破坏了任务栏中的固定项目。

    一种方法是安装一次瘦加载器,然后将更新的程序加载到它自己的内存空间中。这样,如果固定在任务栏中,它将被识别为相同的程序。

    我只熟悉使用 .NET AppDomain,但我认为大多数其他运行时也可以做到这一点。

    【讨论】:

      最近更新 更多