Не удалось найти тип или пространство имен IAppBuilder(отсутствует с помощью директивы pr ссылка на сборку)

Я работаю над Asp.Net приложение MVC 4, в котором я использую SignalR 2.0.1, и я сопоставил его с помощью класса запуска Owin, и сначала он работал нормально.

внезапно, когда я попытался перестроить свое приложение, он сказал, что тип-пространство имен IAppbuilder не удалось найти.

ниже мой класс запуска

using Microsoft.Owin;
using Owin;
using WhiteBoardApp;

namespace WhiteBoardApp
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.MapSignalR();
        }
    }
}

Я установил Owin пакет тоже, и по некоторым причинам я не мог найти класс запуска Owin, поэтому я просто добавил нормальный класс и включены все необходимые ссылки. Пусть я знаю, где я совершаю ошибку

7 ответов


попробуйте использовать консоль управления пакетами и do

Update-Package Owin -Reinstall

у меня была аналогичная проблема. Но вместо Owin проблема была вызвана Microsoft.Долг, очевидно,

Update-Package Owin -Reinstall

не сработало, и не сработало Update-Package Owin

но

Install-Package Microsoft.Owin

отлично сработало для меня, спасибо.


интерфейс IAppBuilder находится под пакетом Owin. Просто добавьте ссылку в свой файл класса:

использование Owin;

и восстановить. Ваш проект подхватит это.

Я понятия не имею, почему VS не взял это, но это не так. Как только я добавил эту ссылку на свой проект, все встало на свои места.


я столкнулся с той же проблемой при создании моего проекта. Вот шаги, которые помогли исправить мою проблему:

  1. на Solution Explorer и ищите свой проект
  2. в рамках проекта расширения References; вы должны увидеть предупреждения о проблемных ссылка
  3. щелкните правой кнопкой мыши References и открытым Manage NuGet Packages
  4. поиск имени проблемной ссылки, т. е. Microsoft.Owin; после загрузки он показывает, что он уже установлен (это так, но это установлен неправильно. Проверка свойств > версия на Шаге 2 показывает 0.0.0.0)
  5. Регистрация Force uninstall, even if there are dependencies on it
  6. удалить
  7. установить
  8. построить и запустить проект

проблемы

не удается установить Microsoft.Web.Infrastructure потому что он уже существует в папке packages. Откат...

  1. перейдите в папку проекта и найдите пакеты
  2. найти проблематично пакет т. е. Microsoft.Web.Infrastructure
  3. удалить папку
  4. возобновить с шага 7

варианты

вот альтернативы, о которых я читал, чтобы решить эту проблему.

  • очистить и перестроить проект / решение
  • Перезапустите Visual Studio
  • перезагрузить ПК

удачи.


мой Visual Studio 2013 по какой-то причине не понял, что существуют пути ссылок. Желтый восклицательный знак перед ссылками был показан для всех добавленных пакетов. Я проверил ../ packages / но все файлы существовали, я также открыл .csproj файл, который ссылается на правильные пути.

закрытие и открытие решения вернули довольно много ошибок и не смогли загрузить проекты, включенные в решение.

перезапуск Visual Studio 2013 сохранен день по какой-то необъяснимой причине.


мой следующий эквивалент использования в F# представляет проблему сокрытия IAppBuilder. Оказывается, условие Оуина интерпретировалось как неполная система.Сеть.Http.Ссылка Owin, хотя Owin.ссылка на dll, предоставляющую пространство имен Owin.

open System.Net.Http
open System.Web.Http
open Microsoft.Owin
open Owin

проблема была решена путем перестановки использования следующим образом:

open Microsoft.Owin
open Owin
open System.Net.Http
open System.Web.Http

...конечно, это может быть ошибка, свойственная компилятору F#, и конфликты имен обрабатываются лучше в C# и в другом месте.


http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr

проверьте наличие используемой visual studio Вы можете найти следующий комментарий

Примечание. при использовании Visual Studio 2012 шаблон класса концентратора SignalR (v2) будет недоступен. Вместо этого вы можете добавить простой класс ChatHub.

также Примечание: Если вы используете Visual Studio 2012, так, шаблон запуска OWIN класс не будет доступен. Вместо этого вы можете добавить простой класс Startup.