我的应用程序有一个文件文件夹,这些文件都标记为“隐藏”(包括文件夹本身)。但是,除非我先删除“隐藏”属性,否则 Inno Setup 不会复制它们进行安装。
很公平,但是有没有办法让 Inno Setup 在我的最终用户机器上完成安装后将已安装的文件夹标记为“隐藏”?
谢谢。
我的应用程序有一个文件文件夹,这些文件都标记为“隐藏”(包括文件夹本身)。但是,除非我先删除“隐藏”属性,否则 Inno Setup 不会复制它们进行安装。
很公平,但是有没有办法让 Inno Setup 在我的最终用户机器上完成安装后将已安装的文件夹标记为“隐藏”?
谢谢。
请参阅该部分Attribs
中的条目参数[Dirs]
。
[Dirs]
Name: "{app}\blah"; Attribs: hidden;
请注意,这不会真正阻止人们看到它,只是让它看起来像你有什么要隐藏的。
首先,确保只有目录是隐藏的,而不是子目录。说它的名字是srcHiddenDir。现在,创建另一个目录dstHiddenDir,但现在不要隐藏它。但它应该是空的。
然后,打开 settings.json,并将所有出现的srcHiddenDir替换为dstHiddenDir。
现在,准备好像往常一样复制文件。在代码的一部分中,您将获得:
[Files]
Source: "wherethewholecodeis\phpdesktop\phpdesktop-chrome.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "wherethewholecodeis\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "wherethewholecodeis\*srcHiddenDir*\*"; DestDir: "{app}\*dstHiddenDir*"; Attribs:hidden; Flags: ignoreversion recursesubdirs createallsubdirs
然后,您需要编写:
[Dirs]
Name: {app}\dstHiddenDir; Attribs:hidden;
Name: {app}\dstHiddenDir\application; Attribs:hidden;
Name: {app}\dstHiddenDir\database; Attribs:hidden;
Name: {app}\dstHiddenDir\css; Attribs:hidden;
....
...以及您要隐藏的所有子目录,只是为了更安全。但请注意,这些子目录应该是真实的,并且在源/目标中。否则,当您运行安装程序时,错误将显示这些目录不存在。
现在,编译程序。希望这可以帮助。