我有一个beta测试阶段的应用程序。它有应用程序文件和数据库(.db
)文件,我想保留而不是替换它。
让我们假设我为我的客户提供了1.0版本,并且他们安装了它。现在我有1.1版,它在应用程序文件中有一些变化,但不在db。
中如何指示Inno安装程序保留该文件,其余文件只需替换?
[Files]
Source: "D:\nw\testfile.db"; DestDir: "{app}"; Flags: uninsneveruninstall onlyifdoesntexist
Source: "D:\nw\*"; Excludes: "\node_modules\"; DestDir: "{app}"; Flags: recursesubdirs createallsubdirs;
使用此脚本文件,testfile.db
始终会被新版本覆盖。
我的目标是在新安装期间保留testfile.db
。
2016-06-06 13:36:21.630 - 文件输入 -
2016-06-06 13:36:21.630 Dest filename:C:\ Complexity tool \ testfile.txt
2016-06-06 13:36:21.631我们档案的时间戳:2016-06-06 09:41:08.000
2016-06-06 13:36:21.631 Dest文件存在。
2016-06-06 13:36:21.631现有档案的时间戳:2016-06-06 09:41:08.000
2016-06-06 13:36:21.631我们的文件版本:(无)
2016-06-06 13:36:21.631现有档案版本:(无)
2016-06-06 13:36:21.631安装文件。
2016-06-06 13:36:21.632已成功安装该文件。
谢谢
答案 0 :(得分:2)
问题是虽然第一个条目D:\nw\testfile.db
可能没有安装该文件,但它是由第二个通配符条目D:\nw\*
安装的。
您必须将onlyifdoesntexist
添加到通配符条目。或者,如果您需要覆盖所有其他文件(即使它们存在),请从通配符条目中明确排除testfile.db
文件:
Source: "D:\nw\testfile.db"; DestDir: "{app}"; Flags: uninsneveruninstall onlyifdoesntexist
Source: "D:\nw\*"; Excludes: "\node_modules\,\testfile.db"; DestDir: "{app}"; Flags: recursesubdirs createallsubdirs