gpt4 book ai didi

inno-setup - 如何在 ExtractTemporaryFile 中使用多个同名文件?

转载 作者:行者123 更新时间:2023-12-03 11:16:25 34 4
gpt4 key购买 nike

InnoSetup有一个函数 ExtractTemporaryFile 可以临时提取文件而不是安装它)。例如。在安装过程中提取并运行第 3 方安装程序。

这个函数只需要一个文件名,所以如果有多个同名文件你想这样处理,它是行不通的。

如何在不重命名源文件的情况下处理这个问题?

最佳答案

answered on the InnoSetup user voice forum :

  1. 问题是,InnoSetup 不知道文件的完整源路径,它只有一个带有目的地的文件列表。
  2. 同时 ExtractTemporaryFile目前无法通过目标目录区分,可以重命名 DestName 以便在不重命名源的情况下区分文件:

例子:

; 2005 redist
Source: Source\Redist\vcredist_x86.exe; Flags: dontcopy
; 2010 redist
Source: Source\Redist\2010\vcredist_x86.exe; DestName: vcredist_x86_2010.exe; Flags: dontcopy

稍后您可以引用唯一的文件名,而无需重命名设置的输入。

完整学分转到 dave


当您有最新的 Inno Setup 版本时,还有 ExtractTemporaryFile*s* , 它可以通过目标目录使用通配符,所以要走的路是:

[Files]
Source: Source\Redist\*.*; DestDir: redist_bundle; Flags: dontcopy recursesubdirs

[Code]
...
ExtractTemporaryFiles('redist_bundle\*');
// _-^-_

这会将 Redist 源下的子树提取到 inno 的临时目录中。请注意,我在 DestDir 以及随后在 Extract.. {app}{tmp} 常量函数。

这样,文件将被提取为,例如

...
[12:16:32,105] Extracting temporary file: C:\Users\me\AppData\Local\Temp\is-xyz.tmp\redist_bundle\ucrt-redist-10586\Windows6.1-KB3118401-x64.msu
[12:16:32,145] Extracting temporary file: C:\Users\me\AppData\Local\Temp\is-xyz.tmp\redist_bundle\vcredist-2005\vcredist_x86.exe
[12:16:32,167] Extracting temporary file: C:\Users\me\AppData\Local\Temp\is-xyz.tmp\redist_bundle\vcredist-2010\vcredist_x64.exe
[12:16:32,230] Extracting temporary file: C:\Users\me\AppData\Local\Temp\is-xyz.tmp\redist_bundle\vcredist-2010\vcredist_x86.exe
[12:16:32,279] Extracting temporary file: C:\Users\me\AppData\Local\Temp\is-xyz.tmp\redist_bundle\vcredist-2013\vcredist_x64.exe
[12:16:32,318] Extracting temporary file: C:\Users\me\AppData\Local\Temp\is-xyz.tmp\redist_bundle\vcredist-2013\vcredist_x86.exe
[12:16:32,358] Extracting temporary file: C:\Users\me\AppData\Local\Temp\is-xyz.tmp\redist_bundle\vcredist-2015\vc_redist.x64.exe
[12:16:32,437] Extracting temporary file: C:\Users\me\AppData\Local\Temp\is-xyz.tmp\redist_bundle\vcredist-2015\vc_redist.x86.exe
[12:16:32,512] Extracting temporary file: C:\Users\me\AppData\Local\Temp\is-xyz.tmp\redist_bundle\vcredist-2017\vc_redist.x64.exe
[12:16:32,591] Extracting temporary file: C:\Users\me\AppData\Local\Temp\is-xyz.tmp\redist_bundle\vcredist-2017\vc_redist.x86.exe

关于inno-setup - 如何在 ExtractTemporaryFile 中使用多个同名文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28342666/

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