我正在准备一个 InnoSetup 安装程序,并希望允许用户将 testparam=abc 等参数与 setup.exe 一起传递。 testparam 的值应转发到运行部分中的 application.exe。 就像是: MySetup.exe /testparam=abc 。 我按照 Is it possible to Accept custom command lineparameter with Inno Setup 和 Custom command line parameter in Inno Setup with default value so I can pass build configuration 的说明进行操作,但它仍然收到错误:Unrecognized [Setup]节指令位于 [Setup] 部分下面的行。 这是我的 iss 文件的一部分: 一开始:
> #DEFINE myparam ""
>
> [Setup]
> myparam = {param:testparam|Debug}
>
> [Run]
> Filename: {app}\{#AppName}.exe; Flags: runhidden; Parameters:"/internalParam ""{myparam}""";
/internalParam 应接收值 myparam(在本例中为“abc”)并应在应用程序中进行处理。 我想我错过了一些东西,也许有人可以指出我正确的方向。谢谢你。
错误消息实际上是正确的。您无法“编造”
[Setup]
部分指令。但是,我认为你可以这样做:
[Run]
Filename: "{app}\{#AppName}.exe"; Flags: runhidden; Parameters:"/internalParam ""{code:GetInternalParam}""";
并在
[Code]
部分添加一个函数:
function GetInternalParam(Param: string): string;
begin
result := ExpandConstant('{param:internalParam}');
end;