System.Configuration.ConfigurationManager不可用?

时间:2009-05-12 08:42:59

标签: .net configurationmanager

在VS2005 C#项目中,我添加了对System.configuration的引用。 在对象浏览器中,我可以看到System.Configuration.ConfigurationManager。 在Intellisense System.Configuration中只有旧的ConfigurationSettings,而不是ConfigurationManager。

我的代码    System.Configuration.ConfigurationManager.AppSettings [ “MySetting”]

突出显示为语法错误,无法编译。

在另一个项目中,完全相同的设置工作得很好......任何有关正在发生的事情的线索?

9 个答案:

答案 0 :(得分:118)

虽然使用System.Configuration ;命令在using部分自动生成,由于某种原因未设置实际引用。

进入添加引用,。Net标签,然后选择 System.Configuration

现在将解析ConfigurationManager。

如果你去完全相同的设置工作的项目并查看引用,你会看到对System.Configuration的引用。

答案 1 :(得分:16)

要回答这个问题(并非已经5次以上没有回答过),可以添加System.Configuration作为项目的参考。

但是我真的要强调的是,很多时候我已经将System.Configuration.dll添加到我的项目的引用中,但是出于特殊原因,有时ConfigurationManager仍然不会出现即使在添加对System.Configuration的引用之后,也在intellisense中。即使我删除了引用并再次添加它。

解决这个问题的简单方法是:

  1. 将对System.Configuration.dll的引用添加到项目中
  2. 保存文件
  3. 保存您的解决方案
  4. 关闭给您带来困难的Visual Studio实例
  5. 重新打开您的解决方案
  6. 这个简单的练习将使Visual Studio再次运行并停止告诉您没有添加对System.Configuration的引用。这个练习通常可以帮助我解决所有莫名其妙的Visual Studio行为。

    我曾经多次在VS2008和VS2010中遇到这种情况,并且每次都有效。

答案 2 :(得分:10)

urgh - PICNIC错误。在解决方案中添加了对错误项目的引用...

答案 3 :(得分:9)

对于在开发ASP.NET WebForms和WinForms之间来回切换的人来说,这个技巧可能会派上用场。

如果您正在使用C#WinForms项目进行开发,您会发现尝试使用ConfigurationManager来获取app.config设置会导致以下错误:

  

当前上下文中不存在名称“ConfigurationManager”

由于ASP.NET项目默认包含此项,因此可能会出乎意料。只需右键单击项目中的“引用”节点,然后查看“.NET”选项卡。向下滚动,您应该找到System.Configuration。将其添加到您的项目中,您应该已启动并运行。

添加对System.Configuration的引用

如果您已将System.Configuration添加到代码顶部的“使用”部分,则现在应该可以使用以下代码配置设置(例如连接字符串):

con.ConnectionString = ConfigurationManager.ConnectionStrings[sConnection].ConnectionString;

答案 4 :(得分:3)

我认为您需要隐式引用 System.Configuration 程序集。

答案 5 :(得分:3)

来自MSDN文档 -

  

要使用ConfigurationManager类,您的项目必须引用   System.Configuration程序集。默认情况下,一些项目模板,   与控制台应用程序一样,请不要引用此程序集   手动引用它。

https://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.aspx

答案 6 :(得分:0)

这只是一个猜测,但也许您应该检查您的项目是否至少使用.NET framework 2.0。从.NET 2.0开始,ConfigurationManager类是可用的,如下所示: link on msdn

答案 7 :(得分:0)

  1. 转到管理NuGet软件包
  2. 浏览 System.Configuration
  3. 安装软件包System.Configuration.ConfigurationManager。 View

答案 8 :(得分:0)

哇——这对我来说很难解决;最后,我发现我的 vb.net 程序只有在包含引用(如预期)并从我的模块中删除“Imports System.Net”语句(如我所料)时才会编译。