【问题标题】:Dependency error (System.Net.Http) when using Azure deployment options - works when publishing in Visual Studio使用 Azure 部署选项时出现依赖性错误 (System.Net.Http) - 在 Visual Studio 中发布时有效
【发布时间】:2018-08-01 13:10:31
【问题描述】:

我遇到了一个很奇怪的情况,希望有人能帮忙解决!

我有一个普通的 ASP.NET MVC 网站。我设置了“部署选项”以在每次 Develop 提交时推送到域。但是,这已经开始给出依赖错误:

Could not load file or assembly 'System.Net.Http' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

现在,我认为这是一些缓存,因为解决方案在本地工作。所以我已经在 Visual Studio 中发布了几次应用程序(可以选择删除所有远程文件),然后解决方案就起作用了。

但是,在这样做之后,我使用部署选项返回到正常提交,我又回到了相同的错误:

【问题讨论】:

  • “带有部署选项的正常提交”是什么意思?您是否在 Azure 门户上配置了部署,或者您是否有配置为在提交时构建和部署网站的构建服务器?
  • 您的应用程序是哪个 .net 版本?
  • @RuiJarimba 是的 - Azure 门户中的菜单点 :-) 所以当我在 Github 中提交时,它会在此处触发构建
  • @Smartis 版本 4.6.1

标签: c# asp.net asp.net-mvc azure


【解决方案1】:

从您的描述来看,它似乎在过去已经成功部署。

您最近升级过项目吗?如果是的话,看看这个帖子Strange issue with System.Net.Http 4.2.0.0 not found

另外,检查您是否从 NuGet 引用 DLL,而不是 GAC。

【讨论】:

  • 那个线程设法为我解决了这个问题。这是解决它的提交:prntscr.com/kex49y
【解决方案2】:

首先想到的是您在解决方案中添加了一个新的 DLL,该 DLL 依赖于另一个版本的 System.Net.Http 程序集。如果您知道自己添加了一个新 DLL,请检查它的程序集依赖项。

另一种解决方案可能是在代码中手动指定程序集的版本。并选择特定版本。 (但我猜这是导致问题的第一件事)。

【讨论】:

  • 但是为什么我的部署风格会有所不同呢?我知道它是在我升级我的依赖项之后发生的,但这并没有改变为什么它是超级奇怪的正常发布工作,而门户中的“部署选项”却没有:-)
  • 这里可能是在黑暗中拍摄,但也许发布不会覆盖现有的程序集。除此之外,我真的不知道。
  • 但是发布工作,所以我很确定它会覆盖。挑战在于部署选项.. :-)
【解决方案3】:

我曾经遇到过类似的问题。 System.Net.Http包之间的版本应该不匹配。

尝试验证整个解决方案的 System.Net.Http 版本,并在所有项目中引用相同的版本。

如果在一个项目中引用了一个包,而在另一个项目中引用了同一包的不同版本,则会发生这种情况。这里,当这两个项目之间存在引用时,就会出现这个错误。

【讨论】:

  • 不幸的是,它们都指的是同一个版本
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-06
  • 2023-04-05
  • 1970-01-01
  • 2021-04-24
  • 1970-01-01
  • 1970-01-01
  • 2022-12-03
相关资源
最近更新 更多