当配置文件位于应用程序目录中时,我能够从.config文件中读取并将更改写回。我现在想要更改此权限,因为用户权限并将我的.config文件移动到users / xxx / local目录。 我已经知道你需要将SectionInformation.AllowExeDefinition属性更改为ConfigurationAllowExeDefinition.MachineToLocalUser 但是我无法为AppSettings部分更改此属性。
这是我从AppSettings
中读取的内容//Read COM Port settings
UIModel_settings.COMport = System.Configuration.ConfigurationManager.AppSettings.Get("COMPort");
这就是我写给AppSettings的方式
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
config.AppSettings.Settings["COMPort"].Value = UIModel_settings.COMport;
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
当我运行时,我在Save方法中遇到锁定错误: 锁定时无法编辑ConfigurationSection属性。
任何想法如何解决这个问题?或者我如何在本地用户目录下创建此文件?
由于
Zjerre
答案 0 :(得分:2)
在您的项目中,您是否有设置文件项(例如Settings.settings)?
如果是这样,这将生成一个Settings类,其中包含一个静态Default属性,可用于访问appSettings元素。如果没有,那么您可以尝试从解决方案资源管理器添加一个 - >项目 - >添加项目 - >设置文件。
UIModel_settings.COMport = Settings.Default.COMPort;