因此,我清理了ASP.NET MVC项目中的一些DLL引用,我删除了bin中的DLL并更新了源代码控制以从源代码控制中删除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,我的本地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版本重新进行添加.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,并覆盖我的本地副本的bin.Microsoft.Owin.dll,我的ASP.NET MVC再次开始工作,直到我建立这当然也是。
尝试为每个Katana/OWIN相关包(http://docs.nuget.org/docs/workflows/reinstalling-packages)运行'Update-Package -reinstall'。如果你使用的是NuGet包,你不需要直接添加引用到任何DLL。 –
Eilon
2014-10-02 05:52:41
这并没有工作,虽然 – 2014-10-02 06:07:35