创建setup.exe后,我必须将其打包用于各种软件部署工具。因此我无法使用参数调用setup.exe,而是将自己的参数放在setup.exe旁边的setup.ini文件中
[Code]
var
MyIniFile: String;
function InitializeSetup(): Boolean;
var
LoadFromIniFile: String;
begin
Result := true;
MyIniFile := ExpandConstant('{srcexe}'); //writes the full path of the setup.exe in "MyIniFile"
MyIniFile := Copy(MyIniFile, 1, Length(MyIniFile) - Length(ExtractFileExt(MyIniFile))) + '.ini'; //changes the ".exe" into ".ini"
if FileExists(MyIniFile) then LoadFromIniFile := MyIniFile; //checks wether there is a ini-file
if LoadFromIniFile <> '' then begin
MyLogFile := GetIniString('Setup', 'Log', MyLogFile , LoadFromIniFile);
ProductName := GetIniString('Setup', 'ProductName', ProductName, LoadFromIniFile);
end;
end;
现在我想在我的ini文件中放置所谓的“设置命令行参数”(在Inno Setup Help站点上列出)。我认为/Dir="x:\dirname
参数有一种方法,我还没想到。但是我也希望在那里有/SILENT
参数,你认为有办法做到这一点吗?如果是的话,你会怎么做?如果没有,你能不能给我一个提示,为什么不呢?
答案 0 :(得分:0)
因此,针对不同的产品自定义您的安装程序,我建议您使用pre-processor并自动为每个产品构建安装程序(使用不同的&#34;定义&#34;),而不是使用外部INI文件。
例如,为了能够在构建安装程序时更改应用程序名称和生成的可执行文件,请使用如下脚本:
[Setup]
AppName={#AppName}
OutputBaseFilename={#BaseFilename}
现在,您可以使用命令行自动创建两个不同的安装程序:
ISCC.exe Example1.iss /dAppName=App1 /dBaseFilename=SetupApp1
ISCC.exe Example1.iss /dAppName=App2 /dBaseFilename=SetupApp2
关于隐式静默安装:
除了命令行/SILENT
开关之外,没有API可以触发静默安装。
但您可以通过禁用大多数安装程序页面来创建近乎静默的安装:
[Setup]
DisableWelcomePage=true
DisableDirPage=true
DisableProgramGroupPage=true
DisableReadyPage=true
DisableFinishedPage=true
实际上,上面的示例禁用了所有默认页面。但如果禁用所有其他先前页面,Inno Setup编译器将忽略DisableReadyPage=true
。
您可能希望选择要显示的其他页面。例如,欢迎页面(省略DisableWelcomePage=true
,但保留DisableReadyPage=true
)。
如果您不介意使用外部文件(因为您已使用外部INI文件),您当然可以将安装程序包装到批处理文件中,并使用/SILENT
开关调用安装程序。