将 Inno Setup 中的自定义命令行参数传递给程序可执行文件

问题描述 投票:0回答:1

我正在准备一个 InnoSetup 安装程序,并希望允许用户将 testparam=abc 等参数与 setup.exe 一起传递。 testparam 的值应转发到运行部分中的 application.exe。 就像是: MySetup.exe /testparam=abc 。 我按照 Is it possible to Accept custom command lineparameter with Inno SetupCustom 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”)并应在应用程序中进行处理。 我想我错过了一些东西,也许有人可以指出我正确的方向。谢谢你。

installation inno-setup
1个回答
0
投票

错误消息实际上是正确的。您无法“编造”

[Setup]
部分指令。但是,我认为你可以这样做:

[Run]
Filename: "{app}\{#AppName}.exe"; Flags: runhidden; Parameters:"/internalParam ""{code:GetInternalParam}""";

并在

[Code]
部分添加一个函数:

function GetInternalParam(Param: string): string;
begin
  result := ExpandConstant('{param:internalParam}');
end;
© www.soinside.com 2019 - 2024. All rights reserved.