gpt4 book ai didi

inno-setup - Innosetup,最佳实践自定义安装将变量传递给外部应用程序

转载 作者:行者123 更新时间:2023-12-04 05:56:41 25 4
gpt4 key购买 nike

我有一个使用 InnoSetup 的安装任务,我不太确定如何正确执行。

情况如下:
1 个带有一些文本框和复选框的 innosetup 自定义页面。基本上包含 targeturl 和 windows servicename。以后可能会更多。
此自定义信息需要传递到两个不同的 app.config 文件。

现在的问题是,如何做到这一点?
我的第一个意图是使用带有一堆参数的 [Run] 段,例如:
[跑]
文件名:{app}\MyApp.exe;参数:/安装;标志:运行最小化

但我不知道如何将自定义数据传递给应用程序。

也许可以创建一些环境变量并以这种方式传递数据?
也许可以创建一个具有必要值的临时文件?
也许应该在安装期间而不是安装后在加载的 dll 中执行此操作?

任何建议将不胜感激。

最佳答案

谢谢。对于“@DenverCoder9”:

基本上我最终做了什么,这几乎是 Inno-setup 捆绑示例中的一行一行。错过了 Inno-setup 允许 XML 操作(通过 MSXML)的事实,这使我能够:
包括一个示例配置文件 (app.config.sample)。
加载示例配置文件
使用从自定义表单收集的数据修改它。
将其保存到正确的位置。

[Files]
...
Source: ..\UpdateService\UpdateService\Server\bin\Release\UpdateService.exe.config; DestDir: {app}; Permissions: users-modify; Flags: comparetimestamp onlyifdoesntexist; AfterInstall: MyAfterInstall;


[Code]
procedure MyAfterInstall();
var XMLDoc : Variant;
var RootNode : Variant;
begin
// if(FLAG_UPDATE_SERVICE_CONFIG) then begin
XMLDoc := CreateOleObject('MSXML2.DOMDocument');
XMLDoc.async := False;
XMLDoc.resolveExternals := False;
XMLDoc.load(ExpandConstant(CurrentFilename));
RootNode := XMLDoc.documentElement;
...
end;
end;

这有一个额外的好处,我有一个示例文件,可以为需要手动修改应用程序的任何人提供。

关于inno-setup - Innosetup,最佳实践自定义安装将变量传递给外部应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9436078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com