我有一个使用XNA框架用C#编写的应用程序。因此,它基本上构建为Update()
和Draw()
的游戏,另一个是该应用程序用于连续运行而不会停止。
问题是我想在跑步时做一个自动更新。通过这个,我的意思是以下内容:我运行了应用程序,并且我有一个函数可以检查我的应用程序的其他版本的所有时间(我对我的应用程序所做的更改并在新的发行版本中重建它们)
如何创建更新到指定文件夹中的其他版本的函数。它检查该文件夹是否包含带有新版本项目的zip存档,它解压缩它并关闭当前应用程序并从给定的zip存档启动新版本的应用程序。你能给我一个解决这个问题的起点吗?
答案 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