关于主程序用process.start启动外部程序,外部程序启动后Kill不掉主程序的问题
yuuzg 2009-10-23 03:47:17 关于主程序用process.start启动外部程序,外部程序启动后Kill不掉主程序的问题
主程序a.exe
在a的代码中用process.start("b.exe")程序,然后b.exe启动后需要kill掉a.exe,虽然kill后在进程列表中没有找不到a.exe了,但是到相应目录下去删除a.exe时却删除不掉,显示“无法删除 a.exe:访问被拒绝。请确认磁盘未满或未被写保护而且文件未被使用”,应该还是被占用了。
查了MSDN,大概说是process.start启动的外部程序与主程序存在资源关联,估计是这个原因造成b.exe虽然kill了a.exe,但还是不能删除a.exe。
请教如何让a.exe启动b.exe后,b.exe能否kill掉a.exe的进程且能删除a.exe这个文件。
备注:为何要实现这个。主要是用于升级程序,宿主程序启动升级程序,升级程序kill并删掉宿主程序,然后用下载的升级文件替换宿主程序。由于宿主程序一直被占用不能被删除,也不能被替换,造成无法升级。谁有更好的办法啊??