如何从 Config.xml 文件更新 Inno Setup AppVersion [Setup] 值

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

我想通过解析

AppVersion
标签在编译时从
[Setup]
文件更新
config.xml
部分中的
Version
值。

Config.xml
文件具有以下配置:

<?xml version="1.0" encoding="utf-8"?>
<Configuration> 
  <Version>1.0.1</Version>
</Configuration>

我的应用程序正在使用

config.xml
文件作为应用程序版本。我也想在 Inno Setup 安装程序版本中使用相同的版本。

我是 Inno Setup 脚本开发的新手。如果有人为我提供正确的方法,那将非常有帮助。

xml windows inno-setup
1个回答
2
投票

您可以使用简单的 PowerShell 代码,例如:

$version = ([xml](Get-Content 'config.xml')).Configuration.Version
Set-Content -Path 'version.txt' -Value $version

并使用 Inno Setup 预处理器运行它:

#define RetrieveVersion(str FileName) \
  Local[0] = AddBackslash(GetEnv("TEMP")) + "version.txt", \
  Local[1] = \
    "-ExecutionPolicy Bypass -Command """ + \
    "$version = ([xml](Get-Content '" + FileName + "')).Configuration.Version;" + \
    "Set-Content -Path '" + Local[0] + "' -Value $version;" + \
    """", \
  Exec("powershell.exe", Local[1], SourcePath, , SW_HIDE), \
  Local[2] = FileOpen(Local[0]), \
  Local[3] = FileRead(Local[2]), \
  FileClose(Local[2]), \
  DeleteFileNow(Local[0]), \
  Local[3]

[Setup]
AppVersion={#RetrieveVersion("C:\path\config.xml")}

有关类似问题,请参阅从 Inno Setup 中的文本文件读取应用程序版本


尽管我假设应用程序编译器实际上使用

config.xml
作为应用程序可执行版本。如果是这种情况,您可以更轻松地从 .exe 检索版本。

请参阅如何根据我的应用程序版本自动设置 Inno Setup 安装程序的版本?

© www.soinside.com 2019 - 2024. All rights reserved.