控制台应用程序触发一个进程然后自行关闭
我正在为我的应用程序编写一个小型更新程序。 我的流程是这样的: 应用程序.exe ->调用进程(updater.exe) ->应用程序.close() 然后,更新程序检查应用程序是否已关闭,然后覆盖 app.exe 和其他附属程序集。
所以我需要做这样的事情:启动我的 C# exe 应用程序,触发 updater.exe 进程,然后关闭应用程序,但不关闭子进程。
有没有办法在 .NET 中构建这种“即发即忘”的流程?
谢谢你, 南多
I'm writing a small updater for my app.
My flow would be like this:
app.exe -> call process(updater.exe) -> app.close()
Then, updater check if app is closed, then overwrites app.exe and other satellite assemblies.
So I need to do something like this: launch my C# exe app, fire a process for updater.exe, then close app, but without closing child process.
There's a way to build this kind of fire-and-forget process in .NET?
Thank you,
Nando
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
查看 Process 对象。您只需像这样调用 Process.Start 即可:
Look at the Process object. You would just call Process.Start like so:
是的,我正在这样做,但似乎 Process 没有启动...
我做了一个小帮助器类,称为 Updater:
-->启动一个调用“updater.exe -check”的进程,并且该进程有效(当进程完成时,控制返回到我的主应用程序)。我评估进程的返回代码,并在必要时设置 Updater.UpdatesAvalilable bool 标志。
-->启动一个调用“updater.exe -update”的进程来执行更新工作。
所以,我的代码是这样的:
Updater.ApplyUpdates() 中的进程永远不会运行。
我知道,这不是优雅的代码,但我不知道如何实现我的目标。 :-)
谢谢你!
南多
Yes, I'm doing so, but seems that Process don't start...
I made a small helper class, called Updater:
--> starts a Process who call "updater.exe -check", and that works (when process finished, control return to my main app). I evaluate return code of process, and the I set Updater.UpdatesAvalilable bool flag, if necessary.
--> starts a Process who call "updater.exe -update", that do the update work.
So, my code is like this:
Process in Updater.ApplyUpdates() never run.
I know, is not elegant code, but I don't know how to achieve my goal. :-)
Thank you!
Nando
早上好,伙计们。
看来我找到了让它发挥作用的方法。
在我的帮助器类中,我连接了用于获取 stdIO 和 stdError 的事件,只是为了记录一些内容;删除这些,我就完成了我的工作:进程启动和主退出! :-)
只是为了让大家知道这一点:我的流程声明现在是这样的:
谢谢大家!
南多
Good morning guys.
I found a way to make it work, it seems.
In my helper class I wired events for getting stdIO and stdError, just to log something; removing those, I get my work done: process start and main exit! :-)
Just to make all know about it: my process declaration is now like this:
Thank you all!
Nando