【发布时间】:2012-01-04 16:38:47
【问题描述】:
我创建了一个简单的自定义安装程序,如 here 所述。我的新安装程序按预期工作。它会创建一个文件夹并将路径添加到 app.config 文件中。
问题是文件夹上的只读标志被设置并且非管理员用户的写权限被删除。
如果我手动创建文件夹并设置权限,它们会在安装程序运行时重置。
如何在我的自定义安装程序中指定这些参数?
编辑:
我使用下面显示的代码为每个人设置安全权限,这工作正常。
// Get the directory info for the existing folder
DirectoryInfo dirInfo = new DirectoryInfo(settingsFileDir);
// Now apply user access permissions to the folder
if (dirInfo != null)
{
DirectorySecurity security = dirInfo.GetAccessControl();
security.AddAccessRule(new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, InheritanceFlags.ContainerInherit, PropagationFlags.None, AccessControlType.Allow));
security.AddAccessRule(new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow));
dirInfo.SetAccessControl(security);
}
当我尝试设置文件夹属性以删除只读设置时,没有进行任何更改。我这样做:
dirInfo.Attributes = FileAttributes.Normal;
【问题讨论】:
标签: windows-installer custom-action