绑定重定向失败Visual Studio 2017在特定计算机上运行

时间:2019-03-11 21:16:14

标签: asp.net .net asp.net-mvc nuget assembly-binding-redirect

我有一个问题,我无法在本地计算机上运行MVC应用程序,因为它连续失败并出现以下错误:

enter image description here

绑定重定向在Web.config中已到位,但似乎已被忽略:

  <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" 
      culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
  </dependentAssembly>

这在我团队中的其他开发人员机器上工作正常,因此这一定是我机器上的某种潜在问题。在本地运行时,在另一个MVC应用程序中也遇到了相同的错误,但是对于其他dll。 Dotnet核心应用程序都运行良好,此问题似乎仅影响完整的胖点网框架应用程序。

我在这个问题上已经花了很多时间,删除了该应用程序的工作目录,并从git中重新克隆,卸载并重新安装了所有nuget软件包,检查了软件包目录中的所有引用和dll。

是什么原因导致绑定重定向在一台特定计算机上而不是另一台计算机上被忽略?

1 个答案:

答案 0 :(得分:0)

我同意Lex Li的评论。 FusLogger是一种检查项目试图加载哪些dll的方法。

我以前也遇到过类似的问题,可能有多种原因。

  • 它可以在其他开发者机器上使用。这可能是因为VS2015 +从构建助手而不是GAC加载dll
  • 解决方案中的一个项目正在引用同一个dll的多个版本。

以下是我试图解决的几件事

  • 您可以再次生成绑定重定向
  

查看这篇文章

     

https://weblog.west-wind.com/posts/2014/Nov/29/Updating-Assembly-Redirects-with-NuGet

     

有一条命令强制Nuget重新编写所有程序集重定向   在解决方案的配置文件中。

     

只需在Package Manager控制台上尝试一下:

     

PM> Get-Project –All | Add-BindingRedirect

  • 完全删除该特定绑定并尝试运行它