Inno命令行编译不起作用

时间:2015-02-26 13:27:23

标签: c# process inno-setup

我正在尝试使用命令行编译.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#

编辑: 我禁用了输出重定向,现在我在控制台窗口看到它说“脚本文件名不止一次”。

1 个答案:

答案 0 :(得分:1)

您已经说过从执行的ISCC工具中获得的输出是:

  

多次指定脚本文件名

来自this exception,如果您传递的参数超过1个字符且没有起始/-字符,则会引发该{{3}}。这就是发生的事情,因为你错误地将iscc和文件名传递给你的参数。从那里删除错误的iscc。改变这一行:

string Argument = string.Format("iscc /q \"{0}\"", INNOSCRIPTFILE);

到此:

string Argument = string.Format("/q \"{0}\"", INNOSCRIPTFILE);