我有一个内部的Intranet应用程序作为exe文件(win32,用Delphi编写)。
我定期更新它的新function和补丁。
许多人正在访问相同的exe(使用远程桌面)。
在Windows Server 2003中replace我只需要的文件:
重命名旧文件,复制新文件。
这是不可能在2008年,因为相同的caching新文件不起作用。 它运行,但后来有问题(可能与Delphi使用EXE资源的方式)。 唯一的办法是closures所有用户会话并replace文件。
你可以提出一个有效的方法吗? 简单如果可能? 是否有可能禁用此caching? 或者任何其他的技巧,允许我replace文件(不改变完整的path)。
作为一种select,你可以创build一个永不改变的新的启动器。 它将读取要启动的可执行文件的版本,并启动更新的版本。
因此,如果最终用户快捷方式指向的是filename.exe,那么这就是您的启动程序的名称,启动程序可能会读取文件filename.versions,然后执行filename.version.exe。
计划一个维护窗口,并在没有用户使用该文件时replace该文件。 仅仅因为Server 2003允许你以一种错误的方式逃避,并不意味着2008应该。
你提到这个部分:
唯一的办法是closures所有用户会话并replace文件。
是正确的方式去做它。
我猜如果你使用UPX压缩器,你将能够删除可执行文件。 一旦.exe在RAM上解压缩。