windows Inno安装-确保目录不是只读的?

ars1skjm  于 2023-01-31  发布在  Windows
关注(0)|答案(1)|浏览(271)

我有一个Inno Setup安装程序,它将一些文件复制到Program Files中,[Files]部分是这样设置的:

[Files]
Source: "Bundled_Files\*"; DestDir: "{commonpf64}\StudioLinked\Romplur\"; Flags: ignoreversion recursesubdirs createallsubdirs; Permissions: users-full;

Bundled_Files内部复制的文件最终总是被设置为只读。我已经将权限设置为users-full,但似乎没有改变任何东西。是否有办法确保文件不是只读的?
我尝试在[Files]节之前添加一个额外的[Dirs]节,如下所示:

[Dirs]
Name: "{commonpf64}\StudioLinked\Romplur\"; Permissions: users-full;

但这也没有改变文件夹的只读设置。
在Windows 10上使用Inno安装程序6.2.1。任何帮助都很感谢!

whhtz7ly

whhtz7ly1#

我使用以下代码使安装目录的子目录可写和可编辑:

[Dirs]
Name: "{app}\MyWritableSubDir"; Permissions: users-modify

但是,您应仅将数据文件存储在“C:\Program Files”的任何可写目录或子目录中,而不存储可执行文件:否则,这会打开一个安全漏洞(这就是为什么“C:\Program Files”对于普通用户是只读的原因!)。
存储应用程序特定数据的正确位置是ProgramData目录或AppData目录,这正是Microsoft所期望的。有关更一般的讨论,请参阅Where is the correct place to store my application specific data?
请参阅https://jrsoftware.org/ishelp/index.php?topic=consts如何在Inno Setup中使用这些目录。

相关问题