Visual Studio 2017-添加参考

德蒙丹

会员
已加入
2018年5月24日
留言内容
17
编程经验
1-3
嗨,大家好
我正在尝试访问在项目的web.config文件中创建的连接字符串。使用:

SqlConnection con =新的SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings ["ConnectionStringNameFromWebConfig"].ConnectionString);

问题是System.Configuration.ConfigurationManager无法识别,我在页面顶部的“使用System.Configuration”中添加了灰色,因为未使用它-显然是。

我已经做了一些搜索,发现的大部分内容都告诉我要添加对System.Configuration的引用。这是我遇到的问题,首先,我没有参考节点(已在右键上阅读该参考节点),但是我可以右键单击项目节点,并且有一个添加参考选项,但是我可以单击没有可添加的内容。我在左侧有一个选项卡-项目,共享项目,都带有名为解决方案的子选项卡,然后我最近浏览了带有子选项卡的浏览器。全部都是空的,我是要把Visual Studio指向一个文件夹/文件吗?我需要安装一些东西吗?

我确定这应该是一个简单的答案,但我再次陷入了困境:-/

如果您能提供帮助,将不胜感激!

干杯



 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,501
地点
悉尼,澳大利亚
编程经验
10+
首先,您应该确切了解什么是名称空间和程序集以及导入和引用它们的含义。看一下这个:

http://jmcilhinney.blogspot.com/2009/12/referencing-assemblies-and-importing.html

其次,您应该学习如何使用MSDN文档来确定类型所在的程序集和名称空间(如果还没有的话)。这是该ConfigurationManager类的文档:

//msdn.microsoft.com/en-us/library/system.configuration.configurationmanager(v=vs.110).aspx

请注意,它在顶部声明它是System.Configuration命名空间的成员,并且在System.Configuration.dll程序集中声明。名称空间和程序集之间没有一一对应的关系。您会发现,在其他程序集中声明的该名称空间的某些成员通常默认情况下被引用,但默认情况下未引用该特定程序集。

至于问题,您首先创建了哪种类型的项目?您说您有一个web.config文件,因此它显然是某种Web项目。如果解决方案资源管理器中没有“引用”节点,则表明您创建的是网站而不是Web应用程序。我刚刚在VS 2017中创建了一个新网站,这是我的解决方案资源管理器的外观:

PNG网站

创建新的Web应用程序后,Solution Explorer的外观如下:

网页应用程序

如您所见,相似但不相同,后者具有“引用”节点,而前者则没有。将网站列在“网络”下是有原因的- >新项目对话框中的以前版本。您确实应该避免创建它们,而只使用Web应用程序。

就是说,如果您有一个网站,那么您仍然应该能够添加所需的参考。在我的网站项目中,我右键单击解决方案资源管理器中的项目节点以打开“参考管理器”对话框,然后选择“程序集->左侧的框架节点。这列出了所有可用的.NET Framework程序集,我只需向下滚动到System.Configuration并进行检查:

参考管理器

如果您在此过程中做了不同的事情,请准确说明您所做的事情。将来,请准确解释您从一开始就做了什么,因为VS中有很多不同的选择,因此,如果您不告诉我们您选择了哪种选择,那么我们就不得不猜测,猜测意味着可能猜错了。
 

德蒙丹

会员
已加入
2018年5月24日
留言内容
17
编程经验
1-3
你好
非常感谢您的答复,非常感谢您,我正在阅读您现在发送给我的链接-只是发送对您的帖子的答复。

我认为对我来说,这是另一个令人困惑的地方,创建网站的方式有很多,作为初学者,这很令人困惑,我很欣赏我没有解释我选择哪个选项,因此这很难回答- 道歉!


我相信我创建了一个Web应用程序而不是一个网站,我自己添加了Web配置文件,因为我的项目不是从一个项目开始的。但是,我最初创建的Web应用程序(此线程正在尝试解决的问题)看起来与您发送的屏幕截图不同。在创建新项目时,我有两个选项(尽管我知道如果单击旧版本选项卡,但还有其他选项,但我远离这些选项):

newWebApp.jpg

So if I select the first one so 核心 网页 Application and then choose 网页 Application as the template, I see this:
coreWebApp.jpg

如您所见,没有引用节点,也没有web.config-同样,如果我右键单击项目节点,我仍然看不到 里面的任何东西
参考管理器对话框,其空白。如果选择Asp.net 网页应用程序(.net框架),这是创建新项目时的第二个选项(如第一个屏幕截图所示),然后选择Web表单作为模板。然后,我可以看到references节点,并且它还带有已经创建的web.config文件,所以也许这是我要出问题的地方?我一直在使用asp.net核心Web应用程序。我很高兴切换,因为我还没走那么远。

干杯



 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,501
地点
悉尼,澳大利亚
编程经验
10+
在ASP.NET 核心应用程序中,您可以定位.NET Framework或.NET 核心,后者是默认设置。如果选择了前者,则仍然可以右键单击“ Dependencies”节点,以通常的方式添加引用。如果选择后者,我认为可以引用程序集的唯一方法是添加适当的NuGet程序包,也可以从“依赖关系”节点执行此操作。

如JohnH所说,除非您特别想阅读有关.NET 核心和ASP.NET 核心的信息,否则您现在应该坚持针对.NET Framework的ASP.NET应用程序。在此阶段,较新的选项可能不会为您提供任何优势,可用的信息较少,陷阱更多。
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,501
地点
悉尼,澳大利亚
编程经验
10+
我认为您的意思是ASP.Net 网页 应用您有那种选择?

不。 ASP.NET 网页应用程序项目模板只能针对.NET Framework。

ASP.NET 网页应用程序.PNG

After selecting the ASP.NET 核心 网页 Application project, you then have to decide between .NET 核心 and .NET Framework, with the former being the default.

ASP.NET 核心 Application.PNG
 
最佳 底部