什么是正确的方式来创建一个配置文件,可以由没有管理员权限的用户修改

本文关键字:管理员 修改 用户 权限 配置文件 方式 创建 什么 一个 | 更新日期: 2023-09-27 18:12:04

我的c#程序有一个app.exe.config文件。用户可以在任何地方安装程序。如果用户选择将程序安装在"program Files"文件夹中,该程序将在Windows 7中修改文件时出现特权问题,因此我将可以修改的文件外部化到AppData文件夹中。除了app.exe.config文件外,当用户更改其设置时,也应该由程序修改。显然,它应该与app.exe.

在同一个文件夹中。

我认为这是一个微不足道的问题,但是我找不到正确的解决办法。

  • 复制配置文件到其他地方,修改它并复制回程序文件;
  • 创建第二个配置文件;
  • 不让用户选择安装文件夹;
  • 强制程序以管理员身份运行

所有这些解决方案都会导致一个糟糕的设计。有什么解决方案不会呢?

编辑:也许我的一些前提是错误的,有可能有配置文件安装到AppData或其他任何地方,而不改变可执行文件的位置。然而,我还没有确定这是否可能。

什么是正确的方式来创建一个配置文件,可以由没有管理员权限的用户修改

应用程序设置体系结构应该可以帮助您-您可以定义用户设置以及存储在用户中的应用程序设置。配置文件。

对MSDN的引用:http://msdn.microsoft.com/en-us/library/0zszyc6e(v=vs.110).aspx

"非默认的用户范围设置存储在新文件中,user。配置,其中user是当前执行应用程序的人员的用户名。您可以使用DefaultSettingValueAttribute为用户范围的设置指定默认值。由于用户范围的设置在应用程序执行期间经常发生更改,因此Config总是读/写。"

在安装时更改app.config文件权限。如果您正在使用WIX(我只是假设,因为它是当今最流行的解决方案),请查看http://wixtoolset.org/documentation/manual/v3/xsd/util/permissionex.html