Inno命令行编译不工作
Inno command line compilation not working
我正在尝试使用命令行编译 .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#
编辑:
我禁用了输出重定向,现在我在控制台 window.
上看到它说 "Script file name specified more than once"
您说过从您执行的 ISCC 工具中获得的输出是:
Script file name specified more than once
来自 this exception
如果您传递超过 1 个字符且没有起始 /
或 -
字符的多个参数,则会引发此问题。之所以会发生这种情况,是因为您错误地将 iscc
和文件名传递给了参数。从那里删除输入错误的 iscc
。更改此行:
string Argument = string.Format("iscc /q \"{0}\"", INNOSCRIPTFILE);
对此:
string Argument = string.Format("/q \"{0}\"", INNOSCRIPTFILE);
我正在尝试使用命令行编译 .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#
编辑: 我禁用了输出重定向,现在我在控制台 window.
上看到它说 "Script file name specified more than once"您说过从您执行的 ISCC 工具中获得的输出是:
Script file name specified more than once
来自 this exception
如果您传递超过 1 个字符且没有起始 /
或 -
字符的多个参数,则会引发此问题。之所以会发生这种情况,是因为您错误地将 iscc
和文件名传递给了参数。从那里删除输入错误的 iscc
。更改此行:
string Argument = string.Format("iscc /q \"{0}\"", INNOSCRIPTFILE);
对此:
string Argument = string.Format("/q \"{0}\"", INNOSCRIPTFILE);