繁体   English   中英

奇怪的Microsoft.Owin DLL问题和Nuget

[英]Strange Microsoft.Owin DLL issue and Nuget

因此,我清理了ASP.NET MVC项目中的一些DLL引用,删除了bin中的DLL,并更新了源代码管理以从源代码管理中删除DLL。 我现在以正确的方式将所有引用复制到build上的bin中。 但是当我运行本地主机时,出现错误:

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

因此,我开始将服务器(该网站正在运行)上的DLL与本地bin目录进行比较。 如果我从服务器复制并替换Microsoft.Own并覆盖我的本地版本,则该网站将再次运行,错误消失了。

问题是DLL的版本完全相同,请参见以下屏幕截图:

在此处输入图片说明

左边是我的本地副本,右边是来自服务器的版本。

如果查看ASP.NET MVC网站的参考,就会发现Microsoft.Own位于:.. \\ packages \\ Microsoft.Owin.2.1.0 \\ lib ** net40 ** \\ Microsoft.Owin.dll

并且“本地复制”设置为“ True”,请参见屏幕截图: 在此处输入图片说明

因此,接下来我删除了Microsoft.Owin.2.1.0的引用,并尝试使用net45版本的Microsoft.Owin.dll进行读取。 所以我浏览到.. \\ packages \\ Microsoft.Owin.2.1.0 \\ lib ** net45 ** \\ Microsoft.Owin.dll

但是当我去检查Microsoft.Owin的“属性”时,在“引用”下,路径仍然是.. \\ packages \\ 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和.. \\ packages \\ 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本地副本,则我的ASP.NET MVC将再次开始工作,直到我再次构建该版本当然是。

首先检查两个dll大小是否相同?如果大小不同则dll不同。

请遵循以下步骤。

  • 打开项目
  • 删除dll。
  • 现在构建项目。 你会得到错误。
  • 结束专案
  • 再次打开项目
  • 不要建立专案
  • 清洁溶液
  • 添加dll和参考
  • 建立项目
  • 你会成功

“ bin”目录中可能存在某些程序集文件,该文件取决于错误加载程序集。因此,应检查项目引用并清除“ bin”目录。

暂无
暂无

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

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