2014-10-02 1 views
0

Итак, я очистил некоторые ссылки DLL в проекте ASP.NET MVC, я удалил библиотеки DLL в bin и обновил исходный элемент управления, чтобы удалить библиотеки DLL из исходного элемента управления. Я скопирую все ссылки на bin на сборке сейчас, правильно. Но когда я запускаю локальный я получаю ошибку:Странная проблема Microsoft.Owin DLL и Nuget

Could not load type 'Microsoft.Owin.Security.AuthenticationDescription' from assembly 'Microsoft.Owin, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. 

Так что я начал сравнивать библиотеки DLL на сервере (где работает веб-сайт), на мой локальный каталог бен. Если я копирую и заменяю Microsoft.Own с сервера и перезаписываю свою локальную версию, веб-сайт снова работает, ошибка исчезла.

Дело в том, что версии библиотек DLL точно так же, смотрите следующий снимок экрана:

enter image description here

На левой моя локальная копия, а справа есть версия от сервер.

Если я смотрю на свои ссылки на веб-сайт ASP.NET MVC, я вижу, что Microsoft.Own находится по адресу: .. \ packages \ Microsoft.Owin.2.1.0 \ lib ** net40 ** \ Microsoft .Owin.dll

и Copy Local установлен в Правда, увидеть снимок экрана: enter image description here

Так что в следующий я удалил ссылку на Microsoft.Owin.2.1.0 и попытался readd с использованием версии net45 от Microsoft .Owin.dll. Поэтому я просмотрел .. \ packages \ Microsoft.Owin.2.1.0 \ lib ** net45 ** \ Microsoft.Owin.dll

Но когда я отправился проверять свойства для Microsoft.Owin, в разделе Ссылки, путь был еще .. \ пакеты \ Microsoft.Owin.2.1.0 \ Lib ** net40 ** \ Microsoft.Owin.dll

Так я тогда пошел в свой файл csproj и увидел следующую запись:

<Reference Include="Microsoft.Owin.Security, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>..\packages\Microsoft.Owin.Security.2.1.0\lib\net45\Microsoft.Owin.Security.dll</HintPath> 
</Reference> 

И в моем web.config мой targetFramework составляет 4,5:

<compilation debug="true" targetFramework="4.5"> 

Итак, я скопировал и наклеил файл Microsoft.Owin.dll на сервер, который работает с .. \ packages \ Microsoft.Owin.2.1.0 \ lib ** net40 ** \ Microsoft.Owin.dll и. . \ пакеты \ Microsoft.Owin.2.1.0 \ Lib ** net45 ** \ Microsoft.Owin.dll

Чтобы перезаписать пакет DLL копируется, когда я Перестройка и все-таки я получаю ошибку:

Could not load type 'Microsoft.Owin.Security.AuthenticationDescription' from assembly 'Microsoft.Owin, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. 

Опять же, если я скопирую Microsoft.Owin.dll ту же версию, что и моя локальная копия, и перезапишу мою локальную копию Microsoft.Owin.dll в bin, мой ASP.NET MVC снова начнет работать, пока я не создам опять же это, конечно.

+0

Попробуйте запустить 'Update-Package -reinstall ' для каждого пакета, связанного с Katana/OWIN (http://docs.nuget.org/docs/workflows/reinstalling-packages). Вам не нужно добавлять ссылки непосредственно к любым DLL, если то, что вы используете, это пакеты NuGet. – Eilon

+0

Это не помогло, спасибо –

ответ

1

Сначала проверьте размер обеих DLL одинаково? Если размер отличается, то dll разные.

Следуйте следующим шагам.

  • Открыть проект
  • Удалить длл.
  • Построить проект сейчас. Вы получите ошибку.
  • Закрыть проект
  • Открыть проект снова
  • Не стройте проект
  • Чистый раствор
  • Добавить DLL и ссылки
  • Построить проект
  • вы получите успех
+0

Спасибо за помощь, DLL-файлы не такие же, мой проект localhost использует пакет net40, а мой сервер имеет net45, но независимо от того, сколько типов я удаляю ссылку, строю, закрываю проект, очистите решение, попробуйте Microsoft.Owin net45, ссылка всегда идет на net40 –

0

It возможно, что некоторые файлы сборки в каталоге «bin», которые зависят от сборки загрузки ошибок. Итак, вы uld проверить ссылки на проект и очистить каталог «bin».

Смежные вопросы