4

Tickspec を使用して F# でアプリケーションの AT を記述しました。を使用FSharp.Data.Http.Requestしていますが、次のエラーが発生します。

System.MissingMethodException : Method not found: 'FSharp.Data.HttpResponse     
FSharp.Data.Http.Request(System.String,  
Microsoft.FSharp.Core.FSharpOption`1<Microsoft.FSharp.Collections.FSharpList`1
<System.Tuple`2<System.String,System.String>>>,  
Microsoft.FSharp.Core.FSharpOption`1<System.Collections.Generic.IEnumerable`1
<System.Tuple`2<System.String,System.String>>>,   
Microsoft.FSharp.Core.FSharpOption`1<System.String>,   
Microsoft.FSharp.Core.FSharpOption`1<FSharp.Data.HttpRequestBody>,    
Microsoft.FSharp.Core.FSharpOption`1<System.Collections.Generic.IEnumerable`
1<System.Tuple`2<System.String,System.String>>>,
Microsoft.FSharp.Core.FSharpOption`1<System.Net.CookieContainer>, 
Microsoft.FSharp.Core.FSharpOption`1<Boolean>, 
Microsoft.FSharp.Core.FSharpOption`1<System.String>, 
Microsoft.FSharp.Core.FSharpOption`1<Microsoft.FSharp.Core.FSharpFunc`2
<System.Net.HttpWebRequest,System.Net.HttpWebRequest>>)'.
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] 
arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, 
Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags 
invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at <StartupCode$TickSpec>.$TickSpec.createAction@212-1.Invoke()

FSharp.Dataバージョンは 2.1.1.0 です。

fsproj

ToolsVersion is 14.0

TargetFrameworkVersion is v4.6.1

F# is 4.0.

別のアプリケーション用に別の AT のセットがFSharp.Data.dllあり、同じHttp.Request方法を使用していますが、それらは使用F# 4.0しており、問題は発生しませんでした。

サンプルアプリで使用したところ、その Http.Request メソッドを使用できたので、dll に問題はないと思います。古いバージョンのFSharp.Coreを使用していて、FSharp.Dataでも同じ問題が発生している可能性があると考えたため、まったく新しいソリューションを作成しました。

F#3.0私が見つけた唯一の解決策は、その特定のプロジェクトに戻ることでした。他のすべてのアプリケーションF#3.0に移行したので、使用したくありません。F#4.0

これを解決する方法はありますか?

4

2 に答える 2

2

app.config または以下を既存のものに追加します。複数のプロジェクトがある場合。つまり、テストとアプリケーションの両方に追加する必要があります。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>
  <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.4.0.0" newVersion="4.4.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
于 2016-09-13T20:51:52.787 に答える