i have a project, that uses GodSharp.Opc.Ua.Client. This nuget package depends on OPCFoundation.Netstandart.Opc.Ua.Core, which in turn depends on Newtonsoft v.13.0.3. My project has to be integrated in a larger project as dll. That larger project depends on Newtonsoft.Json v.12.0.3 and can absolutely not be updated at this point. As i understand it, i should be able to solve this with a binding redirect, as soon as come to a point where anything from Opc.Ua.Core is used, i get the exception that
+ e {"Die Datei oder Assembly \"Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed\" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.":"Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed"} System.Exception {System.IO.FileNotFoundException}
My binding redirect looks like this:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Opc.Ua.Client" publicKeyToken="bfa7a73c5cf4b6e8" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.5.372.0" newVersion="1.5.372.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Opc.Ua.Configuration" publicKeyToken="bfa7a73c5cf4b6e8" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.5.372.0" newVersion="1.5.372.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Opc.Ua.Security.Certificates" publicKeyToken="bfa7a73c5cf4b6e8" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.5.373.0" newVersion="1.5.373.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.3.0" newVersion="12.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Opc.Ua.Core" publicKeyToken="bfa7a73c5cf4b6e8" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.4.372.0" newVersion="1.4.372.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.4" newVersion="6.0.0.4" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
I don't understand what i am doing wrong. Please help.
As sugested by J.Memisevic i regenerated my binding redirects and that solved the conflict with Newtonsoft.Json versions.
Now i get another error, but only when i integrate my usercontrol in an other project.
System.IO.FileLoadException: "Die Datei oder Assembly "System.Memory,
Version=4.0.1.1, Culture=neutral,
PublicKeyToken=cc7b13ffcd2ddd51" oder eine Abhängigkeit davon wurde nicht gefunden.
Die gefundene Manifestdefinition der Assembly stimmt nicht mit dem Assemblyverweis überein.
(Ausnahme von HRESULT: 0x80131040)"
System.IO.FileLoadException: "Die Datei oder Assembly "System.Memory,
Version=4.0.1.1, Culture=neutral,
PublicKeyToken=cc7b13ffcd2ddd51" oder eine Abhängigkeit davon wurde nicht gefunden.
Die gefundene Manifestdefinition der Assembly stimmt nicht mit dem Assemblyverweis überein.
(Ausnahme von HRESULT: 0x80131040)"
System.IO.FileLoadException: "Die Datei oder Assembly "System.Memory, Version=4.0.1.1,
Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" oder eine Abhängigkeit davon wurde nicht gefunden.
Die gefundene Manifestdefinition der Assembly stimmt nicht mit dem Assemblyverweis überein.
(Ausnahme von HRESULT: 0x80131040)"
System.IO.FileLoadException: "Die Datei oder Assembly "System.Memory, Version=4.0.1.1,
Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" oder eine Abhängigkeit davon wurde nicht gefunden.
Die gefundene Manifestdefinition der Assembly stimmt nicht mit dem Assemblyverweis überein.
(Ausnahme von HRESULT: 0x80131040)"
System.IO.FileLoadException: "Die Datei oder Assembly "System.Memory, Version=4.0.1.1,
Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" oder eine Abhängigkeit davon wurde nicht gefunden.
Die gefundene Manifestdefinition der Assembly stimmt nicht mit dem Assemblyverweis überein.
(Ausnahme von HRESULT: 0x80131040)"
System.IO.FileLoadException: "Die Datei oder Assembly "System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" oder eine Abhängigkeit davon wurde nicht gefunden.
Die gefundene Manifestdefinition der Assembly stimmt nicht mit dem Assemblyverweis überein.
(Ausnahme von HRESULT: 0x80131040)"
System.IO.FileLoadException: "Die Datei oder Assembly "System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" oder eine Abhängigkeit davon wurde nicht gefunden.
Die gefundene Manifestdefinition der Assembly stimmt nicht mit dem Assemblyverweis überein.
(Ausnahme von HRESULT: 0x80131040)"
Die Datei oder Assembly "System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" oder eine Abhängigkeit davon wurde nicht gefunden.
Die gefundene Manifestdefinition der Assembly stimmt nicht mit dem Assemblyverweis überein.
(Ausnahme von HRESULT: 0x80131040)
I'm sorry that this is in german.
The error occures the first time i use an element from GodSharp.Opc.Ua.Client
When i put my usercontrol inside a simple window, this error does not occure. I removed System.Memory and System.Runtime.CompilerServices.Unsafe via nuget package manager from my project. The error still occurs.