Asp.net core Kestrel失败:无法加载Microsoft.Extensions.Logging.Abstractions

Asp.net core Kestrel失败:无法加载Microsoft.Extensions.Logging.Abstractions,asp.net-core,identityserver4,kestrel-http-server,Asp.net Core,Identityserver4,Kestrel Http Server,我有一个非常简单的Kestrel/ASP.NET核心项目成功部署到我的Windows 2008 R2服务器上。。(从一个空的Web项目+IdentityServer4 nuget开始) 因此,我可以首先检索“发现”JSON文档 然后,()我向它添加了几个NuGet包,一些视图/CSS,等等 Microsoft.AspNetCore.Mvc-版本1.1.0 Microsoft.ApsNetCore.StaticFiles-版本1.1.0 升级后的解决方案在我的Win7 dev box上运行良好

我有一个非常简单的Kestrel/ASP.NET核心项目成功部署到我的Windows 2008 R2服务器上。。(从一个空的Web项目+IdentityServer4 nuget开始)

因此,我可以首先检索“发现”JSON文档

然后,()我向它添加了几个NuGet包,一些视图/CSS,等等

  • Microsoft.AspNetCore.Mvc-版本1.1.0
  • Microsoft.ApsNetCore.StaticFiles-版本1.1.0
升级后的解决方案在我的Win7 dev box上运行良好,但在重新部署后。。现在我看到了可怕的502.5错误页面。如果我进入服务器并尝试通过命令行“跳转启动”可执行文件。。我可以看到这个错误:

未处理的异常:System.IO.FileLoadException:无法加载文件或程序集“Microsoft.Extensions.Logging.Abstractions,Version=1.1.1.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”或其依赖项之一。定位的程序集清单定义与程序集引用不匹配。位于Ross.Web.Applications.Identity.Program.Main(字符串[]args)的(HRESULT:0x8013100的异常)

我哪里出错了

我可以看到上述DLL,
Microsoft.Extensions.Logging.Abstractions
,发布到服务器的文件系统。我猜我需要做一个绑定重定向之类的事情,但是,我太新了,不知道怎么做

更新

将我的NuGet软件包升级到最新版本后。。错误类似,但现在找不到:
Microsoft.AspNetCore.Hosting.Abstractions,Version=1.1.2.0

好的,我必须清除服务器的目录。。重新部署。 我已经看到了关于删除“bin”的其他答案,但我感到困惑,因为
core
web部署没有实际的
/bin
目录


现在,我认为这意味着,“清除二进制文件..无论它们在哪里”

这是混合使用1.1.0和1.1.1 asp.net核心依赖项时的常见问题

最简单的解决方案是将所有依赖项更新为1.1.1。如果不可能,则需要添加绑定重定向,以将1.1.1依赖项重定向到目标1.1.0程序集


更改这些依赖项或添加绑定重定向后,在本地清除you/bin文件夹,并在下一次生成时清除

解决方案中有多个项目的人员,请注意:

这主要是因为您的解决方案中有多个项目,并且上述软件包安装在这两个项目中,但版本不同

假设异常如下所示:

只需停止调试并转到
管理解决方案的NuGet软件包
,然后在“已安装”选项卡中搜索该软件包:


正如你所看到的,我在两个不同版本的项目中使用了这个包,这就是重点!只需将较低版本更新为较高版本,即可完成所有设置。

您应该在每次部署时执行此操作。这是一种良好的做法,如果您最终删除依赖项,则部署中不会出现僵尸程序集。很高兴你找到了解决办法。挣扎了一个小时。永远不会得到这个。感谢您可以使用“合并”选项卡,它显示具有不同版本的所有包,并允许更新所有项目