我的代码在本地运行得很好,但在我发布到服务器后,我不断收到此错误:
无法加载文件或程序集“Microsoft.Owin,Version = 3.0.1.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”或其中一个依赖项。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)
我在这个项目中甚至没有Microsoft.Owin Version 3.0.1.0,这个项目中使用的版本是2.0.0.0。然后我尝试更新Owin和依赖项文件,但无济于事。即使在删除Bin文件夹并重建代码后,我仍然遇到同样的问题。
有人可以帮我这个吗?
编辑: 将此添加到Web.Config:
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
这就是我得到的:
无法加载文件或程序集'file:/// C:\ Project \ bin \ Microsoft.Owin.dll'或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)
答案 0 :(得分:2)
对于4.1.0.0和4.0.1.0,我也有同样的问题,其中错误显示3.0.1.0,因此请确保检查Web.config并将其设置为.csproj中的正确版本。就我而言,我必须更新Web.config并将4.0.1.0替换为4.1.0.0。在版本匹配之前,更新包什么都不做。
答案 1 :(得分:0)
我也有过几次。安装nuget包(并接受许可证)总是对我有用。
所以,在visual studio(?)中右键单击你的项目,管理nuget-packages。查找已安装的选项卡,如果是,则删除。然后选项卡浏览,找到Microsoft.Owin(有几个),安装它们就可以了!
答案 2 :(得分:0)
使用Web.config-> Microsoft.Owin版本验证已安装的Microsoft.Owin软件包版本[在管理Nuget程序包中]。这两个版本应该匹配。
这对我有用
答案 3 :(得分:0)
更新解决方案中的软件包后,我遇到了这个问题。我能够通过重新安装Microsoft.Owin来解决该问题。
从Package Manager控制台的Visual Studio中:update-package microsoft.owin
完成后,我可以再次运行我的应用。
答案 4 :(得分:0)
转到Nuget软件包管理器并更新所有软件包(如果需要)或更新Owin软件包,然后再次构建并运行服务器。这对我有用。
答案 5 :(得分:0)
转到引用,然后单击Microsoft.Owin以查看已安装的版本,然后转到web.config并将Microsoft.Owin下的引用更改为3.0.1.0,然后转到Package.config和相同的名称。不需要任何问题。在所有的“轻推软件包”上安装不同的软件包版本,然后重复您之前所做的引用过程