调用process.start时为什么StartInfo.stuff不起作用但Process.start在C#中工作正常
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了调用process.start时为什么StartInfo.stuff不起作用但Process.start在C#中工作正常相关的知识,希望对你有一定的参考价值。
我正在尝试从C#程序中卸载一些可再发行组件,因此我查看存储在app.config中的程序ID值,然后尝试运行msiexec以卸载它们。如果我将参数存储在ProcessStartInfo对象中,则调用不起作用,但如果我调用Process.Start("stuff")
它可以正常工作。这是为什么?我想使用ProcessStartInfo,以便我可以更好地控制弹出的窗口。
这不起作用:
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
int numberOfKeys = ConfigurationManager.AppSettings.Count;
for (int i = 0; i < numberOfKeys; i++)
{
string[] guid = ConfigurationManager.AppSettings.GetValues(i);
startInfo.Arguments = "/X " + guid[0] + " /l*vx log" + i.ToString() + ".txt";
startInfo.CreateNoWindow = true;
startInfo.FileName = "msiexec.exe";
process.StartInfo = startInfo;
var result = process.Start();
}
但这样做:
int numberOfKeys = ConfigurationManager.AppSettings.Count;
for (int i = 0; i < numberOfKeys; i++)
{
string[] guid = ConfigurationManager.AppSettings.GetValues(i);
var result = Process.Start("msiexec.exe", "/X " + guid[0] + " /l*vx log" + i.ToString() + ".txt");
}
有谁能解释为什么?
答案
我通过在通话后放入睡眠(10000)来使其工作。谢谢你的建议!
以上是关于调用process.start时为什么StartInfo.stuff不起作用但Process.start在C#中工作正常的主要内容,如果未能解决你的问题,请参考以下文章
System.Diagnostics.Process.Start() 从 Windows 服务调用时无法启动进程
当我调用 process.start() 时,Python 多处理进程只会停止我的代码运行
安装程序在使用 Process.Start() 启动时失败,但在双击时工作