#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», и все вернулось к нормальной жизни.