繁体   English   中英

无法引用Net45版本的Microsoft.Owin Nuget软件包

[英]Cannot reference net45 version of Microsoft.Owin Nuget package

所以几个小时前,我在SO上问了这个问题: 奇怪的Microsoft.Owin DLL问题和Nuget

我清理了一些ASP.NET网站的bin文件夹中的DLL,并检入了源代码管理。 之后,我在运行网站本地主机时遇到错误:

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

我发现我的项目现在引用的是Microsoft.Owin的4.0版本,如果我将Microsoft.Owin的4.5版本复制到ASP.NET MVC项目的bin目录中,则此错误已得到解决。

所以我需要参考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 2013的工具时使用Visual Studio 2012,当我打开软件包管理控制台时,我相信这是我拥有的Nuget版本:软件包管理器控制台主机版本2.8.50313.31

如果将net45版本复制到ASP.NET MVC项目的bin中,我的错误已修复

我的packages.config,Web.config或csproj中对Microsoft.Owin net40的引用在哪里,不存在,所有内容都指向我的软件包的net45库,但是Microsoft.Owin指向\\ packages \\ Microsoft.Owin.2.1.0 \\ lib \\ net40不管我做什么。

愚蠢的问题,但是您是否检查了项目目标框架是否与下载的软件包匹配?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM