我正在编写将在Okuma控件上运行并具有应用程序设置的应用程序。 由于其中一个条件是必须轻松备份应用程序的设置,因此我将它们保存在应用程序目录中。它适用于控件,因为应用程序转到D:但是如果有人在C盘上的PC上安装应用程序,则应用程序无法访问它自己的应用程序目录并且它会出错。
条件:
是否有标准位置来放置所有应用程序设置?
答案 0 :(得分:2)
继续将应用程序设置和其他数据保存在应用程序的安装目录中。没有必要仅为" PC更改目录位置"安装。
文件访问问题的解决方案是在安装期间更改文件权限。
例如,this answer someone posted using WIX installer。
类似问题is answered here。
您可以使用与此类似的代码在安装期间更改权限(当用户具有管理员权限时)
using System.Security.Principal;
public static void SetPermissions()
{
String path = GetPath();
try
{
// Create security idenifier for all users (WorldSid)
SecurityIdentifier sid = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
DirectoryInfo di = new DirectoryInfo(path);
DirectorySecurity ds = di.GetAccessControl();
// add a new file access rule w/ write/modify for all users to the directory security object
ds.AddAccessRule(new FileSystemAccessRule(sid,
FileSystemRights.Write | FileSystemRights.Modify,
InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit, // all sub-dirs to inherit
PropagationFlags.None,
AccessControlType.Allow)); // Turn write and modify on
// Apply the directory security to the directory
di.SetAccessControl(ds);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}