如何在VS 2015/.NET 4.6中添加引用?

10

VS 2015在添加引用方面有重大改变吗?

我正在进行一个MVC Web项目。我想在我的.NET 4.6应用程序中使用System.Configuration.ConfigurationManager。我进入了References节点,然后选择了Add Reference...并添加了System.Configuration 1.0.0.0。现在Intellisense能够自动提供ConfigurationManager的属性和方法,例如ConfigurationManager.AppSettings

但是,当我尝试编译时,它会提示:

CS0234类型或命名空间名称“Configuration”在命名空间“System”中不存在(是否缺少程序集引用?)

新的.NET Framework如何处理这些事情?

当我将鼠标悬停在using System.Configuration语句上时,会出现一个带有黄色三角形和感叹号的气球文本,内容为:

{} Namespace System.Configuration
  MyProject.DNX 4.5.1 - Available
  MyProject.DNX Core 5.0 - Not Available
You can use the navigation bar to switch context.

这到底是什么意思?


2
你找到那是什么鬼意思了吗? - SpaceMonkey
3个回答

2
这意味着您在DNX 4.5.1中定义了System.Configuration,而这对于DNX Core 5.0不可用。 project.json文件告诉编译器DNX Core 5.0将是主要的目标框架。因此,如果在DNX Core 5.0中没有System.Configuration命名空间,则会出现错误。
为了解决这个问题,您需要切换project.json中定义的框架顺序。
从:
"frameworks": {
    "dnxcore50": {
      },
      "dnx451": {
      }
   }

To

 "frameworks": {
        "dnx451": {
          },
          "dnxcore50": {
          }
       }

然后你要告诉编译器,你的主要目标框架现在是DNX 4.5.1,它是一个更完整但依赖于.NET Framework 4.5.1的框架(.NET Framework 4.5.1 != .NET Core)。

.NET Core是.NET Framework的一个非常小的子集,适用于在非Windows环境(如Linux和Mac)中运行应用程序。

如果你的目标环境是Windows,我强烈建议你将目标设置为DNX 4.5.1或4.6。


0

非常抱歉,我仍然不能使用当前的积分发表评论。

我建议您应该做以下几件事情:

  • 添加一个与您当前框架相关的引用(引用 -> 添加引用 -> 程序集 -> 框架 -> System.Configuration)
  • 尝试添加System.Configuration 4.0.0.0而不是1.0.0.0
  • 检查您的程序是否已经添加了 'using System.Configuration;'

我正在使用 System.Configuration 4.0.0.0,在 Visual Studio 2015 中运行良好。

您可以在 这里 进一步了解。


只有 4.0 System.configuration 4.0.0.0,没有 System.Configuration 4.0.0.0 - Old Geezer
那么,你尝试过使用4.0 System.configuration 4.0.0.0吗?@OldGeezer - Mark
完全相同的错误信息。我在原来的问题中添加了更多信息,涉及到上下文切换的一些内容。也许这可以提供一些线索。 - Old Geezer
1
你的项目中使用dnxcore50吗?如果没有,那么你可以将其注释掉,这样就可以解决问题了。@OldGeezer - Mark

0

当你有使用添加链接(项目上下文菜单,然后添加->现有项...->添加为链接)的文件的项目时,消息您可以使用导航栏切换上下文将会显示。

示例:假设你在一个名为ProjectA的项目中有一个C#文件sample.cs,并且同样的文件作为链接被引用到ProjectB中。然后你在sample.cs中编写了一些使用名为Library的库的代码。你只在ProjectA中拥有对这个Library的引用。所以ProjectB也应该有对该库的引用。如果没有,那么就会出现这条消息:您可以使用导航栏切换上下文。完整的消息示例:

{} Namespace Library
ProjectA 1.0.0 - Available
ProjectB 1.0.0 - Not Available
You can use the navigation bar to switch context.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接