(IStool)软件打包时当文件存在时不覆盖文件(配置文件)

时间:2021-10-03 01:28:44

需求:程序实际使用过程中有些配置信息是需要用户手动配置的,不同客户使用配置信息也不同,所以软件发布前需要考虑这个问题,覆盖安装时需要忽略这些配置文件

实现:当对应的目录下由此文件的时候不覆盖此文件

[Files]
Source: ..\..\Server\bin_x64\*; DestDir: {app}\bin; Excludes: plugin_gpstran_gpsgateway\libgpstran_storejt808.ini,plugin_gpstran_gpsgateway\libgpstran_rule.ini,smsconf\smsconf.ini; Flags: ignoreversion recursesubdirs createallsubdirs
Source: ..\..\Server\bin_x64\plugin_gpstran_gpsgateway\libgpstran_storejt808.ini; DestDir: {app}\bin\plugin_gpstran_gpsgateway; Flags: onlyifdoesntexist

我们在复制的时候可以移除/不复制那些配置文件(Excludes)

后面单独复制那些配置文件,并加入特定的执行参数(onlyifdoesntexits)

需要注意的是移除文件时.\a.txt和a.txt的差别,.\a.txt是移除所有名为a.txt的文件,a.txt是移除相对目录下的文件