【发布时间】:2020-06-12 09:45:39
【问题描述】:
我正在创建一个 WPF 应用程序。它在 Visual Studio 中运行良好。但是,每当我在安装后通过应用程序修改配置设置时,它都会抛出错误“加载配置文件时出错:访问路径 c:\Program Files (x86)\... denied”。我不能根据要求每次都以管理员身份运行程序。有没有办法解决这个问题?
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var connectionStringsSection = (ConnectionStringsSection)config.GetSection("connectionStrings");connectionStringsSection.ConnectionStrings["cn"].ConnectionString = "data source=" + txtServer.Text + ";database=" + txtDatabase.Text + ";User ID=" + txtUserID.Text + ";Password=" + pwdPassword.Password;
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("connectionStrings");
config.Save(ConfigurationSaveMode.Modified);
// Force a reload of the changed section.
ConfigurationManager.RefreshSection("appSettings");
【问题讨论】:
-
您需要保留更改吗?如果是,为什么不在安装过程中设置文件ACL?或者当需要这样的更改时,正确的方法会提示以管理员模式重新启动应用程序。
-
@DipenShah 我想永久进行更改。您能帮我在安装过程中如何设置文件访问权限吗?
-
您是否使用 installshield 来生成安装文件?
-
@DipenShah 否,正常安装项目。
-
@DipenShah 我尝试将 app.config 重新分配到其他位置。我希望它有效。此外,如果上述修复不起作用,将尝试 File.SetAccessControl。谢谢
标签: c# wpf windows-installer connection-string administrator