Так пару часов назад, я задал этот вопрос на SO: Strange Microsoft.Owin DLL issue and Nugetне может ссылаться на версию net45 из Microsoft.Owin NuGet пакета
Я очистил удалил некоторые библиотеки DLL, которые были в папке бин моего сайта ASP.NET и проверено в контроле источника. После этого, я получаю сообщение об ошибке запуска моего сайта Localhost:
could not load type 'Microsoft.Owin.Security.AuthenticationDescription' from assembly 'Microsoft.Owin, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
Я понял, что мой проект теперь ссылается на версию 4.0 Microsoft.Owin, если я копирую версию Microsoft.Owin 4.5 в бункер каталог моего проекта ASP.NET MVC, исправлена ошибка.
Так мне нужна ссылка на Microsoft.Owin в
\packages\Microsoft.Owin.2.1.0\lib\net45
В настоящее время мой справочный проект не является:
\packages\Microsoft.Owin.2.1.0\lib\net40
Независимо от того, сколько раз я удалить ссылку на net40 Microsoft.Owin .dll, закройте проект, откройте его, очистите, а затем попробуйте добавить новую ссылку и просмотреть в \ packages \ Microsoft.Owin.2.1.0 \ lib \ net45, я все равно получаю ссылку на версию net40.
Я проверил packages.config:
<package id="Microsoft.Owin" version="2.1.0" targetFramework="net45" />
Файл csproj:
<Reference Include="Microsoft.Owin, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Owin.2.1.0\lib\net45\Microsoft.Owin.dll</HintPath>
</Reference>
В моей web.config:
<compilation debug="true" targetFramework="4.5">
Целевая основа для проекта проектные свойства - 4,5
Я удалил и переустановил пакет Microsoft.Owin 2.1.0 Nuget.
Я даже попытался скопировать net45 Microsoft.Owin.dll в папку net40 для пакета, который привел к ошибке:
Could not load file or assembly 'Microsoft.Owin' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Я использую Visual Studio 2012 с помощью инструментов для Visual Studio 2013 установлен, когда Я открываю консоль управления пакетами, я считаю, что это версия Nuget, которая у меня: Package Manager Console Host Version 2.8.50313.31
Если я копирую версию net45 в ящик моего проекта ASP.NET MVC, моя ошибка фиксируется
Где ссылка на Microsoft.Owin net40 в моих пакетах.config, Web.config или csproj, его нет там, все указывает на net45 libs для моих пакетов, но Microsoft.Owin указывает на \ packages \ Microsoft.Owin.2.1 .0 \ lib \ net40 независимо от того, что я делаю.
Целевая структура проекта ASP.NET MVC - это версия 4.5, пакет всегда загружает net40 и net45 dlls. –
И Nuget решает, какую DLL использовать на основе целевого проекта. –
Да, но со мной случилось то, что обновил целевой тип проекта (по какой бы то ни было причине это было, понижение или обновление) и nuget пакеты должны быть удалены и установлены снова (а не просто удалить DLL), чтобы менеджер зависимостей знал, какая версия фрейма права. – dariogriffo