"System.Configuration.ConfigurationSettings.AppSettings"已过时。

64
我收到了以下警告:

'System.Configuration.ConfigurationSettings.AppSettings'已过时: '“此方法已过时,已被System.Configuration!System.Configuration.ConfigurationManager.AppSettings替换”'

如何解决?
12个回答

129

添加对程序集 System.Configuration 的引用。

然后在顶部(假设是C#),使用 System.Configuration(在VB.NET中使用 Imports System.Configuration)。

使用 ConfigurationManager.AppSettings["MySetting"] 来访问设置!


1
这个问题的答案很难找到,让人感到沮丧。我只是缺少了参考文献。谢谢@Mike。 - Grandizer
非常感谢!你是救星。 - Karan Kalra
1
注意事项:我有一个对汇编的引用,但是项目已经更新到版本4,而引用仍在使用旧版本。我需要显式添加引用。 - John M
为什么微软要使用需要您添加对程序集的引用的东西,来取代那些“开箱即用”的方案呢? - MrVimes
在 .NET Core 5.0 中,System.Configuration 不存在。 :( - Jesse Chisholm
@JesseChisholm 我相信有一个NuGet包含它。 - Mike Cheel

32

作为一个警告,我认为它并不重要,除非你已经关闭了将警告视为错误的设置。

添加对System.Configuration的引用。

你只需更新到最新的代码,然后在使用ConfigurationSettings.AppSettings[""]的地方改为ConfigurationManager.AppSettings[""]即可。

这样应该就可以正常工作了。


ConfigurationManager - 不存在,它在哪里? - 001
2
添加对system.Configuration的引用,然后它就会工作 - 我会为此更新我的答案。 - stack72
2
即使添加了引用,仍然找不到configurationManager :-( - Yoosaf Abdulla
如果您在控制库或项目之外使用ConfigurationManager,它将会抛出错误。 - RajeshKdev

20

如果有其他人在寻找 添加引用 选项来实现在Visual Studio 2010中接受答案的话,以下是涉及VB项目更新时所需的步骤。

在Visual Studio 2010中:

  1. 单击“项目” > “添加引用”
  2. 单击C#选项卡(即使我的项目是纯VB项目)
  3. 向下滚动到一半以找到 System.Configuration(我使用了v4,因为选择了.NET Framework 4.0)
  4. 单击“确定”,然后根据建议更新代码行。

从System.Configuration.ConfigurationSettings.AppSettings("name") 更改为System.Configuration.ConfigurationManager.AppSettings

如果没有添加引用,IntelliSense不会在您键入时建议 ConfigurationManager,这是因为它没有一个要知道其位置的引用。这也是为什么根据他们的建议更新代码行时会出现错误的原因。


1
非常感谢您~来自未来的人 - JochemQuery
1
谢谢您,先生!您帮我省了很多时间。 - Timothy Macharia

5

System.configuration DLL 存在于 c:\Windows\Microsoft.NET\Framework\v2.0.50727\。


2

只需在您的代码中将
System.Configuration.ConfigurationSettings.AppSettings
替换为
System.Configuration.ConfigurationManager.AppSettings
即可。


1
在类的顶部添加引用 using System.Configuration; 后,仍然存在相同的警告。
在代码后台:
使用 ConfigurationManager.AppSettings["ConnectionString"] 替代 ConfigurationSettings.AppSettings["ConnectionString"] 默认情况下,System.configuration Dll 将被添加到您的项目中。
在 Web.config 或 App.config 中:
 <add key="ConnectionString" value="Some Connection Strings or Specific Path"/>

1
哦,这不就是他在2010年接受的答案所说的吗? - Christian.K
是的,只是检查一下。警告仍然相同。我已经检查了VS2010和VS2012。@Christian.K - RajeshKdev
1
@RJK请检查他所接受的答案。该答案明确指出:“使用ConfigurationManager.AppSettings [“MySetting”]来访问设置!”我已在Chrome和IE 9中进行了检查。 - seekerOfKnowledge

1

使用ConfigurationManager.AppSettings[""]添加引用程序集,不使用using System.Configuration;


1

您需要在项目中添加 System.Configuration 的引用,然后添加 "Using System.Configuration;"。

下一步使用如下:

private string SQLConnectionString = ConfigurationManager.AppSettings["SQlConnectionString"]; 

0

我在一个C#项目中遇到了同样的问题,通过在XML文件中写入appSettings而不是AppSettings(期望使用驼峰命名法),我解决了这个问题。

<appSettings>
  <add key="myKey" value="my Value"/>
<appSettings>

毕竟C#是大小写敏感的


0

例子:

替换

string smtpServer = System.Configuration.ConfigurationSettings.AppSettings["EmailServer"];

使用

string smtpServer = ConfigurationManager.AppSettings["EmailServer"];

同时确保在机箱顶部添加:

using System.Configuration;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接