Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法在app.config上写入设置(或未显示任何更改)_C#_.net_Winforms_.net 4.5 - Fatal编程技术网

C# 无法在app.config上写入设置(或未显示任何更改)

C# 无法在app.config上写入设置(或未显示任何更改),c#,.net,winforms,.net-4.5,C#,.net,Winforms,.net 4.5,我正在.NETFramework4.5上创建一个应用程序 每当我想加载应用程序配置值(appSettings部分)并写入更改时,如果刷新该部分,就看不到更改。我做错了什么?我该怎么解决呢 代码 private void LoadConfig() { NameValueCollection appSettings=ConfigurationManager.appSettings; 对于(int i=0;i

我正在.NETFramework4.5上创建一个应用程序

每当我想加载应用程序配置值(appSettings部分)并写入更改时,如果刷新该部分,就看不到更改。我做错了什么?我该怎么解决呢

代码

private void LoadConfig()
{
NameValueCollection appSettings=ConfigurationManager.appSettings;
对于(int i=0;i
App.config文件

<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <appSettings>
    <add key="initialCatalog" value="a" />
    <add key="dataSource" value="b" />
    <add key="password" value="c" />
    <add key="userName" value="d" />
    <add key="portalUrl" value="e" />
    <add key="poolingTime" value="60000" />
    <add key="ClientSettingsProvider.ServiceUri" value="" />
  </appSettings>

当窗体被激活时,我调用ReadConfig(),并在按下按钮(确定或应用)时保存数据。我关闭应用程序,然后重新运行它,但没有对app.config文件进行任何更改

有什么想法吗?

通常,我会这样做:

 ...
 config.AppSettings.Settings.Remove("TextBoxNumber");
 config.AppSettings.Settings.Add("TextBoxNumber", "");
它很好用。我猜这是因为你的一个密钥不在app.config中。您需要删除/添加它(如上面的代码),或者,首先在app.config中创建密钥

==================== 更新

试试这个:

 config.AppSettings.Settings["initialCatalog"].Value = txtInitialCatalog.Text;
而不是

 appSettings["initialCatalog"].Value = txtInitialCatalog.Text;

有什么不同吗?

我认为现在发生的是,您正在Visual Studio中进行测试,它将App.Config复制到调试/发布目录,并将其重命名为YourApplication.vshost.exe.Config,每次启动应用程序时都会重置它。尝试在Visual Studio外部运行可执行文件,该可执行文件将使用YourApplication.exe.config文件,并查看该文件是否适用于您。如果我在Visual Studio之外运行,您的代码对我有效,并在应用程序重新启动时保留您的更改。

我已经在配置文件中添加了标记,但没有成功(编辑了问题),我已经编辑了您的标题。请看“,”其中的共识是“不,他们不应该”。我面临着类似的问题。即使在Visual Studio外部也不会保存更改。有什么问题吗?谢谢。我刚发现原因是书面许可。
 appSettings["initialCatalog"].Value = txtInitialCatalog.Text;