System.Configuration.ConfigurationManager 不可用?

Posted

技术标签:

【中文标题】System.Configuration.ConfigurationManager 不可用?【英文标题】:System.Configuration.ConfigurationManager not available? 【发布时间】:2010-10-25 12:08:21 【问题描述】:

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

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

高亮显示为语法错误且无法编译。

在不同的项目中,完全相同的设置也可以正常工作...关于发生了什么的任何线索?

【问题讨论】:

你的目标是什么版本的框架? 【参考方案1】:

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

进入添加引用,.Net 选项卡,然后选择System.Configuration

ConfigurationManager 现在将被解析。

如果您转到完全相同的设置工作正常的项目并查看引用,您将看到对 System.Configuration 的引用。

【讨论】:

【参考方案2】:

要回答这个问题(不是说它还没有回答 5 次以上)就是添加 System.Configuration 作为对您项目的引用。

但我真正想强调的是,在很多情况下,我已将 System.Configuration.dll 添加到我的项目引用中,但出于某种特殊原因,有时 ConfigurationManager 仍然不会出现即使在添加对 System.Configuration 的引用之后,也可以在智能感知中。即使我删除引用并重新添加它。

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

    将 System.Configuration.dll 的引用添加到您的项目中 保存文件 保存您的解决方案 关闭给您带来困难的 Visual Studio 实例 重新打开您的解决方案

这个简单的练习将使 Visual Studio 再次运行,并停止告诉您您没有添加对 System.Configuration 的引用。这个练习通常可以帮助我解决所有莫名其妙的 Visual Studio 行为。

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

【讨论】:

对于所有的头痛,这不应该是解决方案。但确实如此。 @DonRolling 很烦人,不是吗:D?很高兴我能帮上忙。【参考方案3】:

呃 - PICNIC 错误。在解决方案中为错误的项目添加了 ref...

【讨论】:

正在添加System.Management,我说我已经添加了...我的大脑停止工作,可能需要重新启动【参考方案4】:

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

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

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

由于默认情况下它包含在 ASP.NET 项目中,这可能会让人感到意外。只需右键单击项目中的“参考”节点并查看“.NET”选项卡。向下滚动,您应该会找到System.Configuration。将此添加到您的项目中,您应该可以启动并运行。

添加对 System.Configuration 的引用

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

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

【讨论】:

这个答案真正解释了为什么你在处理 ASP.NET 项目时没有遇到这个问题,但在处理 WinForms 时突然感到困惑。【参考方案5】:
    转到管理 NuGet 包 浏览System.Configuration 安装包 System.Configuration.ConfigurationManager。

【讨论】:

十多年后?你在时光机里吗?【参考方案6】:

来自 MSDN 文档 -

要使用 ConfigurationManager 类,您的项目必须引用 System.Configuration 程序集。默认情况下,一些项目模板, 像控制台应用程序,不要引用这个程序集,所以你必须 手动引用它。

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

【讨论】:

【参考方案7】:

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

【讨论】:

【参考方案8】:

这只是一个猜测,但也许您应该检查您的项目是否至少使用 .NET 框架 2.0。 ConfigurationManager 类自 .NET 2.0 起可用,如下所述: link on msdn

【讨论】:

【参考方案9】:

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

【讨论】:

以上是关于System.Configuration.ConfigurationManager 不可用?的主要内容,如果未能解决你的问题,请参考以下文章