Как добавить ссылку в VS 2015/.NET 4.6?

Был ли VS 2015 радикально изменен способ добавления ссылок?

Я делаю веб-проект MVC. Я хотел использовать System.Configuration.ConfigurationManager в своем приложении .NET 4.6. Я пошел в References node и Add Reference... и добавил System.Configuration 1.0.0.0. Теперь Intellisense смог автоматически предоставить свойства и методы для ConfigurationManager, например ConfigurationManager.AppSettings.

Однако, когда я попытался скомпилировать, он говорит

CS0234 Тип или имя пространства имен "Конфигурация" не существует в пространстве имен "Система" (вам не хватает ссылки на сборку?)

Как делаются в новой .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.

Что это значит?

Ответ 1

Это означает, что вы определили System.Configuration в DNX 4.5.1, что означает, что для DNX Core 5.0 недоступно.

Файл project.json сообщает компилятору, что DNX Core 5.0 станет основной целевой средой. Поэтому, если пространство имен System.Configuration недоступно в DNX Core 5.0, вы получите ошибку.

Чтобы решить эту проблему, вам нужно переключить порядок фреймворков, определенных в project.json

От:

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

To

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

Затем вы сообщаете компилятору, что ваша основная целевая структура теперь DNX 4.5.1, которая является более полной, но зависимой средой (.NET Framework 4.5.1! =.NET Core)

.NET Core - очень небольшое подмножество .NET Framework, которое полезно для запуска ваших приложений в не-окнах, таких как Linux и Mac.

Если вы ориентируетесь на среды Windows, я настоятельно рекомендую настроить DNX 4.5.1 или 4.6

Ответ 2

Извините, что я все еще не могу поставить комментарий с моими текущими точками.

Я предлагаю то, что вы должны сделать:

  • Добавить ссылку, которая нацелена на вашу текущую структуру (ссылка → добавить ссылку → Ассембли → Рамка → Система.конфигурация)
  • Попробуйте добавить System.Configuration 4.0.0.0 вместо 1.0.0.0
  • Проверьте, добавили ли вы 'using System.Configuration'; в вашей программе или нет

Im, использующий System.Configuration 4.0.0.0 и его работу в Visual Studio 2015

вы можете узнать больше в здесь

Ответ 3

Сообщение Вы можете использовать панель навигации для переключения контекста. показывает, когда у вас есть проекты, которые используют файлы, добавленные в качестве ссылки (контекстное меню проекта, а затем Add- > Existing Item...- > Add As Link).

Пример: предположим, что у вас есть файл С# с именем sample.cs в Project ProjectA, и тот же файл ссылается как ссылка в ProjectB. Затем вы пишете в sample.cs некоторый код, который использует библиотеку Library. У вас также есть ссылка на эту библиотеку только в ProjectA. Поэтому ProjectB должен также иметь ссылку на эту библиотеку. Если нет - появится это сообщение: вы можете использовать панель навигации для переключения контекста. Полное сообщение с сообщением:

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