一度に複数のサーバーに更新をプッシュしようとしていますが、マネージャーは実行中の.exeファイルの名前を変更できることを発見しました。その知識を使用して、実行中のexeの名前を変更し、そのexeの新しいバージョンをコピーして、foo.exeのメモリ内コピーを実行している人は誰でも問題なく、foo.exeを指すショートカットを開いた人は誰でも新しいコピーを取得できるようにします。更新が適用されました。
私は明確にする必要があると思います、彼は古いコピーが魔法のように更新されることを期待していません、彼は彼らが再びexeを開くまで古いコピーを実行し続けることを期待しています、その場合それは名前を持つ新しいものを開きます古いものの。
ファイルがプログラムで使用されているという例外がスローされることがありますが、ループ内でファイルの名前を変更しようとすると、最終的には成功します。私のマシンでは、ループの中でもまだ動作させることができていません。
私の最初のそして主な質問はこれです:これをすることは今までに受け入れられますか?実行中の実行可能ファイルの名前を変更することは、有効なシナリオである必要がありますか?
第二に、それが有効なシナリオである場合、どうすればこれを確実に行うことができますか?私たちの現在の考えは、File.Move(C#)を使用して名前の変更を何度も試み、それが機能しない場合は、手動で処理できるようにエラーログに書き出すことです。