【发布时间】:2017-04-17 22:08:30
【问题描述】:
我想将我们构建的语言资源文件包含到我们的安装程序中。语言资源文件都具有相同的名称,但位于不同的子文件夹中(每个区域一个),如下所示:
\Release
\bin
\es-MX
Localization.resources.dll
\fr-CA
Localization.resources.dll
etc.
在我的[Files] 部分,我想也许我可以做到这一点(注意星号的位置):
Source: "..\\source\\Libraries\\Localization\\bin\\Release\\*\\Localization.resources.dll"; \
DestDir: "{app}\\MyApp"; Flags: ignoreversion recursesubdirs
不幸的是,Inno Setup 崩溃了,抱怨找不到任何文件:
编译器错误!
第 129 行:找不到与“C:\Development\HT\Installers\..\source\Libraries\Localization\bin\Release\*\Localization.resources.dll”匹配的文件
我希望 Inno Setup 查找包含名为 Localization.resources.dll 的文件的任何子文件夹(因此是 *),并在安装时创建一个具有相同名称的语言目录(基于通过通配符找到的内容) ) 并将文件复制到该文件夹,对每个符合条件的文件夹执行此操作。
基本上,我想这样结束:
..
\MyApp
\es-MX
Localization.resources.dll
\fr-CA
Localization.resources.dll
如果不是很明显,我不希望显式添加源和目标文件夹名称,因为我们将来会添加更多语言/区域设置,我希望 Inno Setup 自动选择任何新的我们创建的语言文件夹/文件,无需更改安装程序源。
这可能吗?
【问题讨论】:
-
您需要
createallsubdirs recursesubdirs标志。例如:Source: "C:\SourceDir\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs -
谢谢,但我不希望 all 子文件夹被包含并复制到目标 - 只包含符合条件的子文件夹(包含一个文件指定的名称)。源路径中有很多我不想包含的子文件夹。
-
我已经解决了这个问题,方法是从只有语言资源文件夹的不同位置获取所需文件,然后使用“*”从该位置获取所有内容。
标签: inno-setup wildcard