1

当配置文件位于应用程序目录中时,我可以从 .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 属性在锁定时无法编辑。

任何想法如何解决这一问题?或者我如何在我的本地用户目录下创建这个文件?

谢谢

杰尔

4

1 回答 1

2

在您的项目中,您是否有设置文件项(例如 Settings.settings)?

如果是这样,这将生成一个带有静态 Default 属性的 Settings 类,您可以使用它来访问 appSettings 元素。如果没有,那么您可以尝试从解决方案资源管理器 -> 项目 -> 添加项目 -> 设置文件中添加一个。

UIModel_settings.COMport = Settings.Default.COMPort;
于 2013-05-13T19:23:23.540 回答