Mam test jednostki NUnit, który jest napisany w normalnej bibliotece F #, ale jest kierowany do kodu F # w bibliotece przenośnych klas.MissingMethodException podczas uruchamiania testu jednostki, który używa FSharp.Data
Kiedy uruchomić ten test (Visual Studio 2013), pojawia się następujący wyjątek:
Result Message: System.MissingMethodException : Method not found:
'Microsoft.FSharp.Control.FSharpAsync`1<System.IO.TextReader> FSharp.Data.Runtime.IO.asyncReadTextAtRuntime(System.Boolean, System.String, System.String, System.String, System.String)'.
To jest to, co mam w moim app.config w Portable Class Library:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.3.1.0" newVersion="3.3.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
to jest to, co mam w app.config mojej normalnej F # biblioteki:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.3.1.0" newVersion="4.3.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="nunit.framework" publicKeyToken="96d09a1eb7f44a77" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.6.3.13283" newVersion="2.6.3.13283" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Nie wydaje się, aby tak było, ponieważ plik DLL FSharp.Data w folderze wyjściowym jest dokładnie taki sam, jak ten, do którego się odwołuje. Spróbuję użyć innego profilu PCL, niż ten, z którego korzystałem (nowy profil 7) najwyraźniej nie jest zalecany: https://github.com/fsharp/FSharp.Data/issues/605 –
@ tiago-margalho Awww, pech człowiek. Warto było spróbować :-( – Scott