MVC 5 - 已导入具有等效标识的多个程序集 - System.Runtime.dll

时间:2017-07-17 20:56:51

标签: asp.net-mvc-5 compiler-errors assembly-binding-redirect

我不确定发生了什么,但我的本地主机上的网站(IIS,Visual Studio 2017 v 15.2 rel 26430.16,Framework 4.7.02046)在启动任何网页时都开始抛出此编译错误:

  

错误CS1703:具有等效标识的多个程序集   导入:... System.Runtime.dll

callstack开始:

  

System.Web.HttpParseException(0x80004005):( 0):错误CS1703:   已导入具有等效标识的多个程序集:   'C:\ Windows \ Microsoft.Net \组件\ GAC_MSIL \ System.Runtime \ v4.0_4.0.0.0__b03f5f7f11d50a3a \ System.Runtime.dll'   和'C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET   文件\根\ 8eef972c \ 49b00562 \组件\ DL3 \ 4fee60ec \ 2db40549_62dbd001 \ System.Runtime.dll”。   删除其中一个重复的引用。 --->   System.Web.HttpCompileException(0x80004005):( 0):错误CS1703:   已导入具有等效标识的多个程序集:   'C:\ Windows \ Microsoft.Net \组件\ GAC_MSIL \ System.Runtime \ v4.0_4.0.0.0__b03f5f7f11d50a3a \ System.Runtime.dll'   和'C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET   文件\根\ 8eef972c \ 49b00562 \组件\ DL3 \ 4fee60ec \ 2db40549_62dbd001 \ System.Runtime.dll”。   删除其中一个重复的引用。在   System.Web.Compilation.AssemblyBuilder.Compile()

查看两个位置的System.Runtime.dll文件显示

  • 4.7.2046.0 (3/18/2017)C:\ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ System.Runtime \ v4.0_4.0.0.0__b03f5f7f11d50a3a
  • 2.6.10.0 (8/20/2015)C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ root \ 8eef972c \ 49b00562 \ assembly \ dl3 \ 4fee60ec \ 2db40549_62dbd001

Web.config有这个绑定重定向:

  <dependentAssembly>
    <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0" />
  </dependentAssembly>

评论该部分解决了这个问题。

这一定是我的开发环境的特别之处。其他开发人员没有问题(也没有构建服务器或生产)。

可以解释发生了什么吗?是否有不同的推荐解决方案?

我认为我确实启用了一些Framework 4.7选项,但我不确定。这不是AspNet Core - 它是针对Framework 4.6.1的MVC5,使用NuGet Microsoft Compiler软件包来支持C#7。

0 个答案:

没有答案