如何在运行XNA时为应用程序进行自动更新

时间:2012-06-18 08:04:34

标签: c# .net xna auto-update

我有一个使用XNA框架用C#编写的应用程序。因此,它基本上构建为Update()Draw()的游戏,另一个是该应用程序用于连续运行而不会停止。

问题是我想在跑步时做一个自动更新。通过这个,我的意思是以下内容:我运行了应用程序,并且我有一个函数可以检查我的应用程序的其他版本的所有时间(我对我的应用程序所做的更改并在新的发行版本中重建它们)

如何创建更新到指定文件夹中的其他版本的函数。它检查该文件夹是否包含带有新版本项目的zip存档,它解压缩它并关闭当前应用程序并从给定的zip存档启动新版本的应用程序。你能给我一个解决这个问题的起点吗?

1 个答案:

答案 0 :(得分:2)

我会做其他应用来管理...就像watch dog

一样

此应用将检查文件夹并重新启动主应用,  并且应该可以配置为要求重新启动,以及在一个时间范围内重新启动...(¿每天中午12点?)

杀死进程:

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