Windowsストアアプリで使用するためにF#を使用して移植可能なライブラリを作成しようとしています。WindowsストアアプリとF#
module FunctionalRT
open System.Net
open System.IO
type WebHelper =
static member DownloadStringAsync (url:string) = async {
let req = HttpWebRequest.Create(url)
use! resp = req.AsyncGetResponse()
use stream = resp.GetResponseStream()
let reader = new StreamReader(stream)
let s = reader.ReadToEnd()
return s
}
私のWindowsストアアプリでこのライブラリを参照しても問題はありません。しかし、問題は、WebHelper
クラスではなくFunctionalRT
モジュールにアクセスできないということです。 using FunctionalRT
を書き込むか、FunctionalRT.WebHelper.FunctionalRT
を使用しようとすると、コンパイラはそれがわからないと訴えます。何が問題なのでしょうか?
EDIT:少数buidls後 及びIは
The type 'Microsoft.FSharp.Control.FSharpAsync`1<T0>' is defined in an assembly that is not referenced. You must add a reference to assembly 'FSharp.Core, Version=2.3.5.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. C:\Users\Igor\Documents\Visual Studio 2012\Projects\App3\App3\GroupedItemsPage.xaml.cs 46 13 App3
を取得クリーンEDIT:
C:\Program Files (x86)\MSBuild\..\Reference Assemblies\Microsoft\FSharp\3.0\Runtime\.NETPortable\FSharp.Core.dll
への参照を追加するには、上記のエラーメッセージを解決したが、別の
Cannot await 'Microsoft.FSharp.Control.FSharpAsync<string>'
すべての参照(.Netとサードパーティの両方)がWinRTと互換性があることを確認しましたか? –
Windows 8アプリケーション(App3)とF#ポータブルライブラリ(FunctionalRTとターゲットフレームワーク:Windowsストアアプリケーション用の.NET、.NET Framework 4.5、Silverlight 5)、App3はFunctionalRTに対してReferebceを持っています。 –
私はこのエラーメッセージによると、C#プロジェクトはFSharp.Core(もちろんWinRTバージョン)も参照する必要があります。私は現在F#プロジェクトだけがFSharp.Coreを参照していると仮定していますか?私が正しければ、このエラーは通常のC#-F#アプリケーションを書くときにも現れます。 –