Ответ 1
Попробуйте использовать консоль управления пакетами и выполните
Update-Package Owin -Reinstall
Я работаю над приложением Asp.Net MVC 4, в котором я использую SignalR 2.0.1, и я его сопоставил с использованием класса запуска Owin, и он работал нормально сначала.
Внезапно, когда я попытался перестроить мое приложение, он сказал, что тип namespace IAppbuilder
не найден.
Ниже приведен мой класс запуска
using Microsoft.Owin;
using Owin;
using WhiteBoardApp;
namespace WhiteBoardApp
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
Я также установил пакет Owin
, и по некоторым причинам я не смог найти класс запуска Owin, поэтому я просто добавил нормальный класс и включил все необходимые ссылки.
Могу ли я узнать, где я ошибаюсь.
Попробуйте использовать консоль управления пакетами и выполните
Update-Package Owin -Reinstall
У меня была аналогичная проблема. Но вместо этого Owin проблема вызывала Microsoft.Owin, очевидно,
Update-Package Owin -Reinstall
Не работает, не было Update-Package Owin
НО
Install-Package Microsoft.Owin
отлично работает для меня, спасибо.
Интерфейс IAppBuilder находится в пакете Owin. Просто добавьте ссылку в свой файл класса:
с использованием Owin;
И перестройте. Ваш проект подберет это.
Я понятия не имею, почему VS не выбрал это, но это не так. Как только я добавил эту ссылку на мой проект, все встало на свои места.
Я столкнулся с той же проблемой при создании моего проекта. Вот шаги, которые помогли исправить мою проблему:
Solution Explorer
и найдите свой проектReferences
; Вы должны увидеть предупреждения о проблемной ссылке.References
и откройте Manage NuGet Packages
Microsoft.Owin
; После загрузки он показывает, что он уже установлен (он установлен, но он установлен неправильно. Проверка свойств > версия на шаге 2 показывает 0.0.0.0
)Force uninstall, even if there are dependencies on it
Невозможно установить
Microsoft.Web.Infrastructure
, поскольку он уже существует в папке пакетов. Откат...
Microsoft.Web.Infrastructure
Вот альтернативы, которые я прочитал, чтобы исправить эту проблему.
Удачи.
Моя Visual Studio 2013 почему-то не понимала, что существуют пути ссылок. Желтый восклицательный знак перед ссылками был показан для всех добавленных пакетов. Я проверил.. /packages/, но все файлы существовали, я также открыл файл .csproj, который ссылался на правильные пути.
Закрытие и открытие решения вызвало довольно много ошибок и не могло загрузить проекты, включенные в решение.
Перезагрузка Visual Studio 2013 спасла день по какой-то необъяснимой причине.
Мой следующий, используя эквивалент в F #, представляет проблему сокрытия IAppBuilder. Оказывается, оговорка Owin интерпретировалась как неполная ссылка System.Web.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 #, а конфликты имен лучше обрабатываются на С# и в других местах.
В моем случае я перемещался по папкам проекта и расположению файла решения vs (.sln). Как только я закончил с повторным добавлением проектов, на уровне решения была папка пакетов, а одна осталась в подпапке проекта. Таким образом, в этом проекте ссылки на папки соответствующих пакетов в файле .csproj испортились.
Переустановка или другие советы, касающиеся менеджера пакетов nuget в этой теме, оказались полезными. Я заметил, что после того, как я переустановил несколько пакетов, в моем исходном коде diff из git путь к папке пакетов был изменен в файле csproj.
Перед
<HintPath>packages\Microsoft.Owin.4.0.1\lib\net45\Microsoft.Owin.dll</HintPath>
После того, какAfter
<HintPath>..\packages\Microsoft.Owin.4.0.1\lib\net45\Microsoft.Owin.dll</HintPath>
Итак, если вы работаете с той же проблемой и у вас много пакетов nuget, может быть проще закрыть все решение, открыть файл csproj в текстовом редакторе, таком как vscode, и исправить относительные ссылки с помощью поиск и замена. Затем просто сохраните, закройте, снова откройте решение в VS и восстановите пакеты nuget. Это должно делать свое дело. (В любом случае вы должны удалить локальную папку пакетов на уровне проекта, чтобы проект действительно потерпел неудачу, если он не получает нужные пакеты.)
http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr
Проверьте, что вы используете визуальную студию Вы можете найти следующий комментарий
Примечание. Если вы используете Visual Studio 2012, шаблон класса SignalR Hub Class (v2) будет недоступен. Вместо этого вы можете добавить простой класс, называемый ChatHub.
Также Примечание. Если вы используете Visual Studio 2012, шаблон стартового класса OWIN будет недоступен. Вместо этого вы можете добавить простой класс под названием "Запуск".