C# 允许非管理员更新程序文件中的.Config文件

C# 允许非管理员更新程序文件中的.Config文件,c#,configuration-files,non-admin,C#,Configuration Files,Non Admin,我正在忙着开发一个软件,它在安装文件夹(C:/Program Files/…)中存储了一个.config文件。使用软件时需要更新此配置文件,当用户具有管理员权限时,此配置文件当前运行良好,但是当非管理员用户尝试使用软件时,会出现异常,因为他们无权更新C:/Program files/中的文件 用于更新配置文件的代码如下所示: Configuration config = ConfigurationManager.OpenExeConfiguration(fileName); config.App

我正在忙着开发一个软件,它在安装文件夹(C:/Program Files/…)中存储了一个.config文件。使用软件时需要更新此配置文件,当用户具有管理员权限时,此配置文件当前运行良好,但是当非管理员用户尝试使用软件时,会出现异常,因为他们无权更新C:/Program files/中的文件

用于更新配置文件的代码如下所示:

Configuration config = ConfigurationManager.OpenExeConfiguration(fileName);
config.AppSettings.Settings.Add("New Setting");
config.Save();
是否允许非管理员用户更新此配置文件?可能通过更改实际配置文件中的某些内容,或者更改更新它的方式

理想情况下,我会将文件移动到应用程序数据文件夹,但这可能是一个相当多的工作,所以我宁愿避免这样做

任何帮助都将不胜感激

提前感谢

您的安装程序(甚至当应用程序检测到它以管理员身份运行时)可以在配置文件上设置ACL,以允许普通用户读取和写入该特定文件


然而,正如您自己所说,正确的方法是使用应用程序数据文件夹。

+1表示“立即正确执行”“公用”配置数据可以放在“公用”中。我通常会在那里创建一个子文件夹,其中包含应用程序名称,并且在下面为每个版本编号创建一个不同的子文件夹。感谢您的回复,如果我有足够的时间完成,我想我会将文件移动到应用程序数据。使用Visual Studio项目设置和用户范围: