我们正在尝试一次性将更新推送到多个服务器,我的经理发现可以重命名正在运行的.exe文件。他想利用这个知识来重命名一个正在运行的exe并复制一个新版本的exe,以便任何运行其内存副本的foo.exe的人都没问题,而打开指向foo.exe的快捷方式的人将得到已应用更新的新副本。
我想我需要澄清一下,他不希望旧副本神奇地更新,他只希望它们继续运行旧副本,直到再次打开exe,然后它将打开具有旧名称的新副本。
有时它会在程序中抛出文件正在使用的异常,但如果他尝试在循环中重命名它,最终会成功。在我的机器上,即使在循环中,我也无法让它工作。
我的第一个和主要问题是:这样做是否可接受?重命名正在运行的可执行文件是否应该是有效的场景?
其次,如果这是一个有效的场景,如何可靠地完成此操作?我们目前的想法是使用File.Move(C#)尝试多次进行重命名,如果不起作用,则写入错误日志,以便手动处理。
我想我需要澄清一下,他不希望旧副本神奇地更新,他只希望它们继续运行旧副本,直到再次打开exe,然后它将打开具有旧名称的新副本。
有时它会在程序中抛出文件正在使用的异常,但如果他尝试在循环中重命名它,最终会成功。在我的机器上,即使在循环中,我也无法让它工作。
我的第一个和主要问题是:这样做是否可接受?重命名正在运行的可执行文件是否应该是有效的场景?
其次,如果这是一个有效的场景,如何可靠地完成此操作?我们目前的想法是使用File.Move(C#)尝试多次进行重命名,如果不起作用,则写入错误日志,以便手动处理。