我需要我的应用程序(Master)在特定事件上运行另一个应用程序(Worker)。
如果我将我的 Worker 应用程序作为标准可执行文件分发,那么一切都很好,我可以毫无问题地使用 Process.Start 并愉快地传递参数并调用 WaitForExit。
如果我将 Worker 应用程序作为 ClickOnce 应用程序分发,它会创建一个应用程序引用,我可以从 Process.Start 开始(一旦我将它的副本放在与我的 Master.exe 相同的目录中),但我不能传递它的参数或使用 WaitForExit。
我希望两者都能做到。我怀疑对引用的调用会启动 Worker 可执行文件实际运行的另一个进程。
我的代码:
// This works as I expect, and returns a valid Process.
Process p0 = Process.Start("Worker.exe", "DoSomeMagic");
// This seems to work, but returns null.
Process p1 = Process.Start("Worker.appref-ms");
// This also returns null, but does not pass the argument to Worker.
Process p2 = Process.Start("Worker.appref-ms", "DoSomeMagic");
我的问题:
我该如何“正确”地做到这一点?