I am using Prism.DryIoc.Extensions(v8.0.62) and Prism.DryIoc.Forms(v8.1.97) which internally is using DryIoc.dll v4.7.3 and v4.7.7 respectively for my Xamarin.Forms project.
I also have a nuget update for my project which is internally using DryIoc.dll v5.0.2.
Now, If I update project nuget to the latest, It throws error. As there is a version conflict.
Since it is a project related nuget, I will have to update somehow. But there is a dependency on Prism and Prism has not released any latest version with latest DryIoc.dll.
I tried to add the following in our .csproj file
<PackageReference Include="Prism.DryIoc.Extensions" Version="8.0.62">
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
<dependentAssembly>
<assemblyIdentity name="DryIoc.dll" culture="neutral" />
<bindingRedirect oldVersion="4.7.3" newVersion="5.0.2" />
</dependentAssembly>
</PackageReference>
This solved compile time error but started throwing run time error as below,
System.MissingMethodException Message=Method not found: DryIoc.Rules DryIoc.Rules.WithoutFastExpressionCompiler()
I also tried creating app.config and use the below code snippet,
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="DryIoc" publicKeyToken="dfbf2bd50fcf7768" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.1.0" newVersion="5.0.2.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
But this is also failing with the same error as above.
Getting rid of Prism is one of the solutions but It is a huge effort as the entire project is using Prism.
What is the best possible solution to fix this? Please help me in this regard.