我正在尝试使用命令行编译.iss文件
string INNOCLI = Application.StartupPath + @"\Inno\ISCC.exe";
string Argument = string.Format("iscc /q \"{0}\"", INNOSCRIPTFILE);
using (Process cli = new Process())
{
//cli.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
cli.StartInfo.FileName = INNOCLI;
cli.StartInfo.Arguments = Argument;
cli.StartInfo.UseShellExecute = false;
cli.StartInfo.RedirectStandardError = true;
cli.StartInfo.RedirectStandardOutput = true;
//cli.StartInfo.CreateNoWindow = true;
cli.OutputDataReceived += cli_OutputDataReceived;
cli.ErrorDataReceived += cli_ErrorDataReceived;
cli.Start();
cli.BeginErrorReadLine();
cli.BeginOutputReadLine();
cli.WaitForExit();
}
但是我没有得到任何东西,我正在使用c#
编辑: 我禁用了输出重定向,现在我在控制台窗口看到它说“脚本文件名不止一次”。
答案 0 :(得分:1)
您已经说过从执行的ISCC工具中获得的输出是:
多次指定脚本文件名
来自this exception
,如果您传递的参数超过1个字符且没有起始/
或-
字符,则会引发该{{3}}。这就是发生的事情,因为你错误地将iscc
和文件名传递给你的参数。从那里删除错误的iscc
。改变这一行:
string Argument = string.Format("iscc /q \"{0}\"", INNOSCRIPTFILE);
到此:
string Argument = string.Format("/q \"{0}\"", INNOSCRIPTFILE);