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