You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Inno Setup在新安装时将{app}值写入XML配置文件

你可以直接通过Inno Setup的内置脚本能力操作XML配置文件,不需要通过注册表中转,方案如下:

步骤1:修改[Files]段配置

在原有配置的AfterInstall参数中新增自定义函数调用,传入安装路径:

Source: "CutToolsBcad.dll.config"; 
    DestDir: "{app}"; 
    Flags: ignoreversion; 
    Check: IsAvailable('BRX', '21', 'x64');   
    AfterInstall: SetupDemandload('BRX', '21', 'x64'); UpdateConfigXml(ExpandConstant('{app}'))

步骤2:新增[Code]段逻辑

添加XML修改的实现函数,直接写入目标节点:

[Code]
procedure UpdateConfigXml(InstallPath: string);
var
  XmlDoc: Variant;
  XmlNode: Variant;
  ConfigPath: string;
begin
  // 拼接配置文件的完整路径
  ConfigPath := ExpandConstant('{app}\CutToolsBcad.dll.config');
  if not FileExists(ConfigPath) then Exit;

  // 加载MSXML操作对象
  XmlDoc := CreateOleObject('MSXML2.DOMDocument.6.0');
  XmlDoc.async := False;
  XmlDoc.preserveWhiteSpace := True; // 保留原文件的缩进格式,不破坏其他配置

  if not XmlDoc.load(ConfigPath) then Exit;

  // 定位到需要修改的目标节点
  XmlNode := XmlDoc.selectSingleNode('/configuration/userSettings/CutTools.Properties.Settings/setting[@name=''SaveToDXF_OutputFolder'']/value');
  if VarIsEmpty(XmlNode) then Exit;

  // 写入安装路径值
  XmlNode.text := InstallPath;

  // 保存修改后的配置文件
  XmlDoc.save(ConfigPath);
end;

可选优化

如果需要仅在新安装场景才写入配置,升级安装时保留用户原有配置,可以调整AfterInstall的逻辑,增加安装类型判断:

AfterInstall: SetupDemandload('BRX', '21', 'x64'); if WizardIsNewInstall() then UpdateConfigXml(ExpandConstant('{app}'))

内容的提问来源于stack exchange,提问作者Andrew Truckle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 21:27:00