是否有可能解决这种装配不匹配的情况?或者这是无法解决的?
Is it possible to resolve this assembly mismatch situation? Or is this unresolvable?
在我的程序集中我想使用
SomeLibrary.dll
-> Newtonsoft.Json, Version 10.0.0.0
我通过路径引用 SomeLibrary.dll
。那我还有
Microsoft.NET.Sdk.Functions
-> Newtonsoft.Json, Version 9.0.0.1
其中这些都被 Nuget 引用。当我这样做时,这会导致版本不匹配
JsonConvert.DeserializeObject<SomeTypeFromSomeLibrary>(json)
我能做些什么吗? :(
此类问题通常可以通过 binding redirect 解决。
对于 JSON.NET,它可能看起来像这样:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
在我的程序集中我想使用
SomeLibrary.dll
-> Newtonsoft.Json, Version 10.0.0.0
我通过路径引用 SomeLibrary.dll
。那我还有
Microsoft.NET.Sdk.Functions
-> Newtonsoft.Json, Version 9.0.0.1
其中这些都被 Nuget 引用。当我这样做时,这会导致版本不匹配
JsonConvert.DeserializeObject<SomeTypeFromSomeLibrary>(json)
我能做些什么吗? :(
此类问题通常可以通过 binding redirect 解决。
对于 JSON.NET,它可能看起来像这样:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>