Не удается получить доступ к пространствам имен из пакета Nuget

#c# #namespaces #nuget-package

#c# #пространства имен #nuget-пакет

Вопрос:

У меня есть проект Identity Server 3, где мне нужно установить пару пользовательских пакетов Nuget, которые поступают из частного репозитория пакетов Nuget в моей компании. Этот Nuget установлен и запущен во многих других веб-проектах, так что, скорее всего, проблема не в этом.

Когда я устанавливаю пакет в проекте Identity Server, журналы сообщают, что все было в порядке, и пакет был успешно установлен. Это указано в ссылках на проект. Но когда я пытаюсь получить к нему доступ в любом месте проекта Identity Server, он просто недоступен. Я не могу настроить ссылку using, ни вызвать какие-либо методы, используя полное пространство имен (InstalledNuget.Услуги.Пример). Intellisense от Visual Studio возвращает «Тип или имя пространства имен не существует в пространстве имен ‘company’ (вам не хватает ссылки на сборку?)».

Исследуя проблему, я обнаружил, что она указана в ссылках на проект, но не в обозревателе объектов.

Я пытался:

  • переустановка пакета;
  • перезапуск Visual Studio;
  • Удаляем папку packages и даем программе снова восстановиться;

Я просмотрел несколько сообщений здесь и на других веб-сайтах, но не обнаружил проблемы, соответствующей этой. Есть какие-нибудь подсказки?

Комментарии:

1. Пространства имен иерархичны и должны иметь все родительские элементы. Итак, когда у вас есть System.Net.Socket, у вас есть три пространства имен: 1) System 2) Net 3) Socket, и у каждого должно быть одно определение. Пространство имен вашей компании либо отсутствует, либо находится не под тем родительским.

2. @jdweng Оба находятся в одном пространстве имен под названием «Company». Например, проект, над которым я работаю, называется «Company. Войдите», а Nuget называется «Company. Параметры». Именно так мы обычно и поступаем.

3. При создании нового проекта вы увидите: пространство имен ConsoleApplication1 { Вот пространство имен} В вашем коде отсутствует аналогичное определение для Company. Или ошибка возникает в другом модуле, и вам необходимо добавить инструкцию using для пространства имен

4. Это может произойти, если ваш проект нацелен на версию .NET, которая не поддерживается пакетом nuget.

Ответ №1:

Ошибка заключалась в некоторой визуальной ошибке в Visual Studio. Я случайно нажал на run, и он успешно запущен, но ошибки все еще отображаются на экране. Затем он полностью игнорировался.

Затем я вручную удалил папки «bin» и «obj», и все вернулось к нормальной жизни.