微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

process.start() 不在调试模式下工作调试时工作正常

如何解决process.start() 不在调试模式下工作调试时工作正常

我有一个非常简单的 C# 程序,需要静卸载旧产品。所以我设置了一个进程并使用正确的参数运行它,当我逐步执行代码时,它每次都运行良好。当我从命令行运行它时,它每次都失败。我正在捕获 StandardOut 和 StandardError 并且 StandardOut 只包含文本:

此操作仅对当前安装的产品有效。

如果我立即在调试模式下运行它,它运行良好,所以很明显没有安装该产品是不正确的。

代码如下:

process.StartInfo.UseShellExecute = false;
process.StartInfo.FileName = processtoRun;
process.StartInfo.Arguments = args;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.CreateNowindow = true;
process.StartInfo.RedirectStandardError = true;
process.Start();
string output = process.StandardOutput.ReadToEnd();
File.WriteallText("stdout.txt",output);
string err = process.StandardError.ReadToEnd();
File.WriteallText("stderr.txt",err);
process.WaitForExit();

这里是值:

StartInfo.FileName = "C:\Program Files (x86)\InstallShield 安装信息{325FAC03-900A-4BB2-B45E-1D0EB4D414BE}\setup.exe"

StartInfo.args = /s /f1"C:\Users\User\CommonCustomActions\Uninstall 5.0.0-5.3.2\Uninstall 5.0.0-5.3.2\bin\Debug\Uninstall response files\5.2.1 \UNINST-5.2.1.iss"

有什么想法吗?

附言原始安装是作为 InstallShield InstallScript MSI 项目构建的,这就是为什么我需要传递“响应文件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。