我一直在寻找使用System :: Configuration来创建和修改位于AppData / Local / myapplicationname /下的user.config文件的正确方法。我使用配置管理器打开本地用户级配置对象。 user.config文件在AppData / Local下尚不存在,因此我调用Configuration :: Save()方法创建它(MSDN文档声明如果文件不存在,此方法将创建该文件)。
Configuration^ C = ConfigurationManager::OpenExeConfiguration(ConfigurationUserLevel::PerUserRoamingAndLocal);
MessageBox::Show(C->FilePath); // Shows "rootpath/AppData/Local/myappname/user.config"
MessageBox::Show(C->HasFile.ToString()); // Shows "false" since user.config hasn't been created yet.
C->Save(ConfigurationSaveMode::Full);
没有任何反应,没有创建user.config文件,也没有错误消息。如果我改为使用Configuration :: SaveAs(),我会收到错误消息:
"The file name 'rootpath\AppData\Local\myappname\user.config' is invalid because the same file name is already referenced by the configuration hierarchy you have opened."
我在这里做错了什么?我对MSDN缺乏关于如何在app.config之外使用System :: Configuration的解释感到非常恼火。我不想使用app.config,因为设置是用户级别的,并且可以由用户随时更改。如果必须,我会使用app.config,但由于UAC,我甚至不能这样做。任何帮助将不胜感激。谢谢大家!