我希望通过解析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脚本开发的新手。如果有人为我提供正确的方法,将会非常有帮助。
答案 0 :(得分:1)
您可以使用简单的PowerShell代码,例如:
$version = ([xml](Get-Content 'config.xml')).Configuration.Version
Set-Content -Path 'version.txt' -Value $version
使用Inno Setup preprocessor运行它:
#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")}
虽然我假设应用程序编译器实际上使用config.xml
作为应用程序可执行版本。如果是这种情况,您可以更轻松地从.exe中检索版本。