0

我刚刚从 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 的开发人员会。因此,团队了解这里发生的事情很重要:)

4

1 回答 1

2

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

  • 在解决方案迁移/更新期间,您的项目的 .NET Framework 设置已更改为更新的 .NET Framework。在较新的 .NET Framework 版本中,该ConnectionStringSettings类型已移至不同的程序集。

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

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

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

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

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

于 2015-07-23T10:50:34.350 回答