0

XNAフレームワークを使用してC#で記述されたアプリケーションがあります。つまり、基本的にとを使用したゲームとして構築されていUpdate()ますDraw()。また、このアプリケーションは、停止することなく継続的に実行することを目的としています。

実行中に自動更新を実行したいということです。これは、次のことを意味します。アプリケーションを実行していて、アプリケーションの他のバージョンを常にチェックする機能があります(アプリに加えた変更を新しいリリースバージョンに再構築します)

指定したフォルダ内にある別のバージョンに更新する機能を作成するにはどうすればよいですか。そのフォルダにプロジェクトの新しいリリースのzipアーカイブが含まれているかどうかを確認し、それを解凍して現在のアプリケーションをシャットダウンし、指定されたzipアーカイブから新しいバージョンのアプリケーションを起動します。この問題の出発点を教えてください。

4

1 に答える 1

2

私はそれを管理する他のアプリをやります...番犬のように

このアプリはフォルダーをチェックしてメインアプリを再起動します。再起動を要求するかどうかを確認し、時間範囲内に再起動するように構成する必要があります...(¿毎日午後12:00?)

プロセスを強制終了するには:

Process []pArry = Process.GetProcesses();

foreach(Process p in pArry)
{       
    if (p.ProcessName.CompareTo("yourapp") ==0)
    {
       p.Kill();
       break; 
    }
}
p.WaitForExit(); // This is blocking so be careful, maybe it should be run in other thread

プロセスを開始するには:

Process.Start(path);

アプリケーションのフローは次のようになっていることに注意してください。

  1. Is a good time to patch the app?
     1.1 NO-> Sleep for some time to recheck (¿12h?) and goto 1
  2. Is there a new path?
     2.1 NO-> Goto 1.1
  3. Kill the main process
  4. Apply the patch
  5. Restart app
  6. Goto 1 
于 2012-06-18T08:12:00.077 に答える