我试图将旧项目移植到网络ASP.NET核心平台。运行我的Web项目会提供旧的不正确的DLL引用"无法加载文件或程序集' Newtonsoft.Json,Version = 9.0.0.0,"。我没有使用任何引用9.0.0的项目或包,所有net aspnetcore组件都引用9.0.1。
我找到的是编译器生成一个* .exe.config文件,该文件对一些引用的net45项目有以下重定向:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="6.0.0.0" newVersion="9.0.0.0" />
<bindingRedirect oldVersion="4.5.0.0" newVersion="9.0.0.0" />
<bindingRedirect oldVersion="8.0.0.0" newVersion="9.0.0.0" />
</dependentAssembly>
我认为这个问题是newVersion与项目其余部分中解析的版本不匹配。有没有办法来解决这个问题?这是一个错误吗?
答案 0 :(得分:1)
将软件包更新为次要版本可能无法完全修改配置。在配置文件中,将newVersion="9.0.0.0"
更改为newVersion="9.0.1.0"
以匹配参考版本。
您还应该能够将重定向组合到
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.1.0" />
答案 1 :(得分:1)
从RC2升级到RTM后,我遇到了同样的问题。原来,旧配置文件从未使用正确的重定向进行更新。删除文件并重建所有工作后。