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 不可用?的主要内容,如果未能解决你的问题,请参考以下文章