删除Inno Setup中现有文件的只读属性



我正在用Inno setup创建一个设置。此设置将文件添加到"主程序"中。在安装一些文件后,它会运行另一个自定义程序,该程序会解包一些先前安装的文件。

这个解包程序依赖于一些现有文件是可写的,这通常是情况。但是在开发机器上,这些文件处于版本控制之下,因此受到写保护(具有只读属性)。

当这些文件被写保护时,解包程序不解包(可能它在控制台中显示一个警告,但是控制台是隐藏的,所以人们不会看到这个警告)。而且我不能更改这个解包程序的代码。

所以,我正在寻找一种方法,使这些文件可写与Inno安装,即使这些文件不是由Inno安装。

我怎样才能做到这一点?

在Inno Setup中没有内置的机制。

但是你可以使用WinAPI从Pascal Script做几乎任何事情。在本例中,您希望使用SetFileAttributes

关于如何在Inno Setup中使用SetFileAttributes的示例,请参见:
Inno Setup Code部分创建隐藏文件