如何在 Windows Server 2008 中替换掉许多用户正在使用的 win32 exe?

如何在 Windows Server 2008 中替换掉许多用户正在使用的 win32 exe?

我有一个内部网应用程序作为 exe 文件(win32,用 Delphi 编写)。

我会定期更新它的新功能和补丁。

许多人正在访问同一个 exe(通过远程桌面使用它)。

在 Windows Server 2003 中替换文件我只需要:

重命名旧文件,复制新文件。

在 2008 年,这种情况已不再可能,因为由于相同的缓存,新文件无法工作。它可以运行,但会出现问题(可能与 Delphi 使用 exe 资源的方式有关)。唯一的方法是关闭所有用户会话并替换文件。

您能建议一种可行的方法吗?如果可能的话,简单一点?是否可以禁用此缓存?或者任何其他允许我替换文件的技巧(无需更改完整路径)。

答案1

另外,您可以创建一个永不改变的新启动器。它将读取要启动的可执行文件的版本,并启动更新后的版本。

因此,如果最终用户的快捷方式指向 filename.exe,那么这就是您命名启动器的名称,启动器可能会读取文件 filename.versions,然后执行 filename.version.exe。

答案2

安排维护时段并在没有用户使用该文件时替换该文件。仅仅因为 Server 2003 允许您以错误的方式做某事而不被惩罚,并不意味着 2008 也应该如此。

您提到这一点的部分:

唯一的方法是关闭所有用户会话并替换该文件。

是正确的做法。

答案3

我猜如果你使用 UPX 压缩器,你将能够删除可执行文件。一旦 .exe 在内存上解压。

相关内容