C# 部署时不保存设置

C# 部署时不保存设置,c#,winforms,application-settings,C#,Winforms,Application Settings,这是一个奇怪的问题,当我从VisualStudio运行应用程序并更改设置时,设置会更改并存储在配置文件中 如果我将文件复制到公共位置并执行相同操作,则设置也会更改、存储并在下次加载时显示新值 但是,当使用InnoSetup将软件部署到用户计算机上时,不会保存设置,因此当重新加载软件时,会加载默认值 这里有我遗漏的东西吗?该文件位于安装目录Program Files x86中,不是只读的 范围是用户,即使以管理员身份运行软件也不会保存更改 private void btnSave_Click(ob

这是一个奇怪的问题,当我从VisualStudio运行应用程序并更改设置时,设置会更改并存储在配置文件中

如果我将文件复制到公共位置并执行相同操作,则设置也会更改、存储并在下次加载时显示新值

但是,当使用InnoSetup将软件部署到用户计算机上时,不会保存设置,因此当重新加载软件时,会加载默认值

这里有我遗漏的东西吗?该文件位于安装目录Program Files x86中,不是只读的

范围是用户,即使以管理员身份运行软件也不会保存更改

private void btnSave_Click(object sender, EventArgs e)
{
    Properties.Settings.Default.ShowActiveSupportForm = (cboxActiveSupportSplash.Items[cboxActiveSupportSplash.SelectedIndex].ToString() == "Yes");
    Properties.Settings.Default.ActiveSupportSplashColour = SplashColor.R + "," + SplashColor.G + "," + SplashColor.B;
    Properties.Settings.Default.Save();
    if (Application.OpenForms["frmActiveSplash"] != null)
    {
        frmActiveSplash frm = (frmActiveSplash) Application.OpenForms["frmActiveSplash"];
        ColorConverter colorConverter = new ColorConverter();
        Color color = (Color)colorConverter.ConvertFromString(SplashColor.ToArgb().ToString());
        color = Color.FromArgb(255, color.R, color.G, color.B);
        frm.BackColor = color;
    }
    MessageBox.Show("Changes have been saved", "Changes Saved", MessageBoxButtons.OK, MessageBoxIcon.Information);
    Properties.Settings.Default.Reload();
    Close();
}

愚蠢的问题,但当您发布代码时,您是否正在从调试| |发布文件夹中推送该版本?设置的范围是什么?请参见项目属性的“设置”选项卡。如果它是应用程序,而用户不是管理员,则可能不会保存该设置。@MethodMan版本folder@MatthewWatson作用域是用户,以管理员用户具有本地管理员权限的身份运行软件并不能解决问题。您在哪个操作系统上运行此软件?这些设置是否镜像到用户数据文件夹中,即不是运行时目录中的本地.config文件??