Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 错误CS0012:类型';连接字符串设置';在升级到Visual Studio 2015后未引用的程序集中定义_C#_.net_Visual Studio 2015_System.configuration - Fatal编程技术网

C# 错误CS0012:类型';连接字符串设置';在升级到Visual Studio 2015后未引用的程序集中定义

C# 错误CS0012:类型';连接字符串设置';在升级到Visual Studio 2015后未引用的程序集中定义,c#,.net,visual-studio-2015,system.configuration,C#,.net,Visual Studio 2015,System.configuration,我刚刚从Visual Studio 2013 Pro升级到Visual Studio 2015(企业版),当我编译解决方案时,出现以下错误: 错误CS0012:类型“ConnectionStringSettings”是在 未引用的程序集。必须添加对程序集的引用 'System.Configuration,Version=4.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 在安装过程中我是否遗漏了什么?从现在起,我是否必须手动添加对我

我刚刚从Visual Studio 2013 Pro升级到Visual Studio 2015(企业版),当我编译解决方案时,出现以下错误:

错误CS0012:类型“ConnectionStringSettings”是在 未引用的程序集。必须添加对程序集的引用 'System.Configuration,Version=4.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

在安装过程中我是否遗漏了什么?从现在起,我是否必须手动添加对我的项目的引用

更新:是的,在向项目中添加对System.Configuration的引用后,它确实可以工作,但问题是为什么我需要在Visual Studio 2015中执行它(在Visual Studio 2013中,它过去在没有引用的情况下工作)


更新:为了解释上下文:我在一个开发人员使用各种版本的Visual Studio(2012年以后)的团队中工作。如果使用Visual Studio<2015的开发人员忘记手动添加该引用,他们不会得到编译错误,但VS2015上的会得到编译错误。因此,团队了解这里发生的事情非常重要:)

我可以想到两个原因,为什么您突然必须在VS 2015中添加对
System.Configuration.dll的显式引用,而在早期版本的VS中您不必这样做:

  • 在解决方案迁移/更新期间,您的Project“.NET Framework设置已更改为较新的.NET Framework。在较新的.NET Framework版本中,
    ConnectionStringSettings
    类型已移动到其他程序集

    老实说,这对我来说似乎不太可能,但可以检查

  • 与2015年相比,生成系统的(MSBuild)
    目标发生了变化。以前的构建目标自动添加对
    System.Configuration.dll
    程序集的引用,而较新的构建目标不再这样做;这就是为什么现在必须手动添加缺少的程序集引用

    (请注意,当您在Visual Studio中创建项目时,生成系统通常会处理对
    mscorlib
    system
    system.Core
    的引用。即使删除这些程序集引用,它们仍然“存在”在编译过程中。可能在VS 2015之前,
    System.Configuration
    也发生了类似的事情。)

    我还没有证实这一点,但这似乎是对两者更可能的解释


这些只是试图解释这一点(也就是猜测),因此可能有一个完全不同的原因。

您是否按照错误消息的建议(添加了该程序集引用)?尝试添加对
系统的引用。配置
我的问题更多:“为什么我需要使用VS2015而不是VS2013?”解释否决票?我还是没有答案谢谢你的回答。VS2015安装了.Net 4.6框架,但我们仍然将.Net 4.5作为项目的目标(没有变化),因此我也不相信第一种解释。