Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

System wide bindingRedirect for F# 4.0.0.0 to 4.3.0.0

I have some xUnit tests which are failing with the common

Could not load file or assembly 'FSharp.Core, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. 
The system cannot find the file specified.

To perform a machine-wide redirect, I added to the file

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config 

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a"
                        culture="neutral"/>
      <bindingRedirect oldVersion="4.0.0.0" newVersion="4.3.0.0"/>
    </dependentAssembly>
  </assemblyBinding>
</runtime>

Do you have a better way to deal with the 4.0 / 4.3 issue definitely ?

like image 553
nicolas Avatar asked Jul 30 '12 09:07

nicolas


2 Answers

I don't know xUnit, but if your unit test runner supports app.config files, you can just attach the config to the unit test assemblies (e.g. an app.config along the lines of what you get with a default F# console application template). If the test runner does not honor app.config, then I think the machine.config strategy is a decent one.

like image 165
Brian Avatar answered Sep 25 '22 13:09

Brian


By using NuGet, I added FSharp.Core.3 and it fixed my issue.

like image 34
Cătălin Rădoi Avatar answered Sep 22 '22 13:09

Cătălin Rădoi