我正在使用.net开发API 对于这个项目,我还需要使用log4net和gelf4net。
WebAPI使用Newtonsoft.json V4.5.0.0 gelf4net使用Newtonsoft 6.0.0
然后我从掘金更新了牛顿软件,但我得到了一个例外,说我无法加载Newtonsoft.json 4.5.0.0这是正常的,因为我更新了。
我做了一些研究,看到了绑定重定向的东西。我试过一个,但不幸的是我没有找到如何让它工作......
这是:
<runtime>
<assemblyBinding>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<codeBase version="4.5.0.0" href="bin\json.net\Newtonsoft.Json.dll" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="6.0.0.0"/>
<codeBase version="6.0.0.0" href="bin\Newtonsoft.Json.dll" />
</dependentAssembly>
</assemblyBinding>
</runtime>
我将旧版本放入bin的子文件夹中,并将href放入配置中。 得到例外。
我在MS网站上看到了这个
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="myAssembly"
publicKeyToken="32ab4ba45e0a69a1"
culture="neutral" />
<bindingRedirect oldVersion="1.0.0.0"
newVersion="2.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
我只是不明白,因为它不可能添加两次相同的程序集(甚至是不同的版本),所以第二个应该位于哪里? 编辑:
还尝试使用简单的方法:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed"/>
<bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="6.0.0"/>
你会有任何建议/解决方案来测试吗? 谢谢 ! 问候。
答案 0 :(得分:1)
作为解决方法:
工作完美,避免使用同一组件的多个版本!