2012-04-24 87 views
2

我有一个程序,我想将信息存储在一个字符串中。我一直在使用Properties.Setting.Default.STRINGname来存储信息,这些信息在我的电脑上正常工作,我可以看到保存的字符串(当我进入应用程序的设置时)。但是,当我将应用程序添加到新PC时,它会损失字符串。有没有办法可以编辑这些信息并将其保存在应用程序中?所以基本上我需要能够将用户设置转换为应用程序设置,但是在运行时之后。将设置保存为一个exe

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

     settings.Save(); 
+0

您正在开发什么.NET版本? – balexandre 2012-04-24 19:35:36

回答

2

MSDN explicit says有所了解:

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

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

有办法继续使用相同的设置,你可以做,至少有两件事情:

  • 使用.config文件保存设置(这是一个XML文件)
  • 使用服务主机的设置,你可以阅读,如果用户有互联网接入

你不能做的是

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

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

+0

因为我希望能够添加信息或更改它,因为我找到了要添加的内容,但无需每次重新编译程序 – 2012-04-24 19:30:21

+0

您不应该重新编译才能更改设置......只需修改您的app.exe.config文件... – therealmitchconnors 2012-04-24 19:40:41

0

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

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

See this links form more information

+0

'...当我将应用程序添加到新PC时...' - 他想保存跨计算机的设置... – balexandre 2012-04-24 19:53:27