【问题标题】:Saving setting to a exe将设置保存到 exe
【发布时间】:2012-05-03 04:22:07
【问题描述】:

我有一个程序,我想将信息存储在一个字符串中。我一直在使用Properties.Setting.Default.STRINGname 来存储信息,这在我的 PC 上运行良好,并且我可以看到保存的字符串(当我转到应用程序中的设置时)。但是,当我将应用程序带到新 PC 上时,它会丢失字符串。有没有办法可以编辑此信息并将其保存在应用程序中?所以基本上我需要能够将用户设置转换为应用程序设置,但在运行时之后。

var settings = Properties.Settings.Default;
        settings.H1 = textbox1.text;
        settings.H2 = textbox2.text;

        settings.Save();

【问题讨论】:

  • 您正在为哪个 .NET 版本开发?

标签: c# application-settings settings


【解决方案1】:

MSDN explicit says 关于这个:

应用程序范围的设置是只读的,并且只能在设计时更改或通过更改.config应用程序会话之间的文件。但是,用户范围的设置可以在运行时编写,就像您更改任何属性值一样。新值在应用程序会话期间持续存在。您可以通过调用 Save 方法在应用程序会话之间保留对设置的更改。

为此,应用程序设置将永远不适合您。但是,如果您使用的是用户范围的设置,它确实可以工作,但很快您将应用程序从一台计算机更改为另一台计算机(如您所说),您将失去设置,因为那是另一台计算机(另一个用户范围)。 .

有办法继续保持相同的设置,你可以做,至少2件事:

  • 使用.config 文件保存设置(它是一个XML 文件)
  • 使用服务托管设置,如果用户可以访问互联网,您可以阅读

你不能做的是

  • 仅使用一个可执行文件,将设置从计算机保存到计算机。

【讨论】:

    【解决方案2】:

    用户设置的编译方式与应用程序设置不同,因此编译后无法转换。为什么不使用应用程序设置进行编译?

    【讨论】:

    • 因为我希望能够添加信息或在找到要添加的内容时更改它,但无需每次都重新编译程序
    • 您不必重新编译来更改设置...只需修改您的 app.exe.config 文件...
    【解决方案3】:

    您使用的代码应保存用户设置。请记住,用户设置将保存在用户的数据文件夹中。不在安装应用程序的配置文件中(比如程序文件)。这是通常的路径:

    <Profile Directory>\<Company Name>\<App Name>_<Evidence Type>_<Evidence Hash>\<Version>\user.config
    

    See this links form more information

    【讨论】:

    • ...when I take the application to a new PC... - 他想跨计算机保存设置...
    猜你喜欢
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    • 2011-07-23
    • 2015-04-11
    • 2013-07-04
    • 2016-10-20
    • 1970-01-01
    相关资源
    最近更新 更多