无法加载文件或程序集'Microsoft.Owin.Security.Cookies'或其某个依赖项。

28
我有一个MVC5项目,由Visual Studio 2013创建,本地启动没有问题。但是当我发布到Azure网站时,出现以下错误页面:
“未能加载文件或程序集”Microsoft.Owin.Security.Cookies"或其某个依赖项。所定位的程序集清单定义与程序集引用不匹配 (HRESULT 异常:0x80131040)。”
出现了堆栈跟踪,我已经安装了Microsoft.Owin的3.0.0版本,并在Web.config和packages.config中都指定了该版本。请问如何解决这个问题?

4
更新包 - 项目名称 myproject。 - Frank Myat Thu
2个回答

89

尝试升级以下技术版本:

  1. Microsoft.Owin.Security从2.1.0升级到3.0.0
  2. Microsoft.Owin.Security.Cookies从2.1.0升级到3.0.0
  3. Microsoft.Owin.Security.OAuth从2.1.0升级到3.0.0

升级完上述包后,该问题得以解决。


3
没问题,我一段时间前就已经想到了这个并忘记了这个问题。只需重新安装它所要求的任何软件包即可。感谢您抽出时间来回答! - yesman
我有更新的版本,但是问题依旧存在。将它们全部升级到同一个版本后问题得以解决。 - Kai Hartmann
是的,对我来说有效,升级到3.0版本后错误消失了。 - Raffaeu
我们如何升级?有人能提供链接吗? - shawn
虽然来晚了,但升级的一种方式是使用包管理器控制台。键入“update-package Microsoft.Owin.Security”(不带引号),然后输入上述下两行内容。 - GeoffM
如果您的项目引用了2.1中的ISecureDataFormat<>等功能,则此方法无法正常工作。 - David Sopko

1
您可以按照以下方式进行操作:
  1. 导航至工具 -> NuGet程序包管理器 -> 管理解决方案的NuGet程序包..
  2. 在NuGet解决方案中,单击已安装选项卡
  3. 在搜索栏中键入Owin。您可以在其中看到所有Owin程序包。
  4. 比较NuGet解决方案Web.Config文件中的程序包版本。
  5. 根据Nuget解决方案中的版本,重命名Web config中的newVersion="x.x.x.x"

以下版本必须考虑NuGet解决方案Web.Config中:

Microsoft.Owin.Security
Microsoft.Owin.Security.OAuth
Microsoft.Owin.Security.Cookies
Microsoft.Owin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接