【问题标题】:How to add reference in VS 2015/.NET 4.6?如何在 VS 2015/.NET 4.6 中添加引用?
【发布时间】:2015-12-17 01:38:28
【问题描述】:

VS 2015 在添加引用的方式上是否发生了巨大变化?

我正在做一个 MVC 网络项目。我想在我的 .NET 4.6 应用程序中使用 System.Configuration.ConfigurationManager。我去了References 节点和Add Reference... 并添加了System.Configuration 1.0.0.0。 Intellisense 现在可以自动为 ConfigurationManager 提供属性和方法,例如ConfigurationManager.AppSettings

但是,当我尝试编译时,它说

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

在新的 .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.

这是什么意思?

【问题讨论】:

  • 你找到这到底是什么意思了吗???

标签: visual-studio-2015 .net-4.5 asp.net-4.5 .net-4.6


【解决方案1】:

这意味着您在 DNX 4.5.1 中定义了 System.Configuration,这意味着 DNX Core 5.0 不可用。

project.json 文件告诉编译器 DNX Core 5.0 将是主要目标框架。因此,如果 System.Configuration 命名空间在 DNX Core 5.0 中不可用,那么您将收到错误消息。

要解决这个问题,你需要切换 project.json 中定义的框架的顺序

发件人:

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

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

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

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

如果您针对的是 Windows 环境,我强烈建议您针对 DNX 4.5.1 或 4.6

【讨论】:

    【解决方案2】:

    抱歉,我仍然无法对我目前的观点发表评论。

    我建议你应该做的事情:

    • 添加针对您当前框架的参考(参考 -> 添加参考 -> 程序集 -> 框架 -> System.Configuration)
    • 尝试添加 System.Configuration 4.0.0.0 而不是 1.0.0.0
    • 检查是否添加了“使用 System.Configuration;”在你的程序中与否

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

    您可以在here查看更多信息

    【讨论】:

    • 只有4.0 System.configuration 4.0.0.0,没有System.Configuration 4.0.0.0
    • 那么,您是否尝试过使用 4.0 System.configuration 4.0.0.0 代替? @OldGezer
    • 完全相同的错误信息。我在原始问题中添加了更多信息,有关切换上下文的信息。也许这可以提供线索。
    • 您在项目中使用 dnxcore50 吗?如果不是,那么您可以将其注释掉,它会解决问题。 @OldGezer
    【解决方案3】:

    消息您可以使用导航栏来切换上下文。 显示您的项目何时使用添加为链接的文件(项目的上下文菜单,然后是 Add->Existing Item...- >添加为链接)。

    示例:假设您在项目 ProjectA 中有一个名为 sample.cs 的 C# 文件,并且将同一文件作为链接引用在项目B中。然后在 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.
    

    【讨论】:

      猜你喜欢
      • 2016-05-31
      • 2017-06-21
      • 2017-01-28
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多