我正在努力满足客户要求,我正在编写的Windows窗体应用程序将安装到C:\ program files \ xxx,并将在一个帐户下运行,该帐户不具有写入c:\ program files的权限\ xxx目录。因此,这意味着我的配置文件需要位于其他位置,以便用户可以对其进行手动更改,我的应用可以对其进行更改。
我还没有发现这样做?我希望我可以使用configSource,但这有限制,外部配置文件应该与应用程序在相同的相对物理路径上,这对我没有好处。 appSettings文件属性可以使用,但这仅适用于该配置部分。我使用其他配置部分,如连接字符串和system.serviceModel。关于我的选择在哪里的任何想法?
谢谢!
答案 0 :(得分:5)
Applications Settings框架自动处理用户范围的设置。
您可以将默认设置放在app.Config
文件中,并提供一种机制(在您的程序中)来编辑设置。任何编辑都将自动写入用户的文档文件夹中的用户特定设置文件(具有写入权限)。没有必要让每个用户直接写入实际app.Config
。
只需在<userSettings>
元素中包含“可写”设置默认值,框架就会按照正确的Windows指导原则为您处理它。
答案 1 :(得分:0)
尝试以下代码
private static XmlDocument loadConfigDocument() { XmlDocument doc = null; try { doc = new XmlDocument(); doc.Load(getConfigFilePath()); return doc; } catch (System.IO.FileNotFoundException e) { throw new Exception("No configuration file found.", e); } } private static string getConfigFilePath() { return Assembly.GetExecutingAssembly().Location + ".config"; }