Próbuję utworzyć bibliotekę przenośną za pomocą klawisza F #, która będzie używana w aplikacjach Windows Store. Stworzyłem jeden plik fs z jedną klasą:Aplikacje Windows Store i 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
}
Odwołałem się do tej biblioteki w mojej aplikacji Windows Store bez żadnych problemów. Ale problem polega na tym, że nie mam dostępu do modułu FunctionalRT
ani do klasy WebHelper
. Kiedy piszę using FunctionalRT
lub spróbuję użyć FunctionalRT.WebHelper.FunctionalRT
, kompilator narzeka, że go nie zna. Jaki może być problem?
EDIT: Po kilku buidls i czyści uzyskać
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:
dodanie odniesienia do C:\Program Files (x86)\MSBuild\..\Reference Assemblies\Microsoft\FSharp\3.0\Runtime\.NETPortable\FSharp.Core.dll
rozwiązać powyższy komunikat o błędzie, ale jest jeszcze jeden
Cannot await 'Microsoft.FSharp.Control.FSharpAsync<string>'
Czy upewniłeś się, że wszystkie twoje referencje (zarówno .Net, jak i strona trzecia) są kompatybilne z WinRT? –
Istnieją tylko 2 projekty: aplikacja Windows 8 (App3) i przenośna biblioteka F # (FunctionalRT ze strukturą Target: .NET dla aplikacji Windows Store, .NET Framework 4.5, Silverlight 5) i App3 mają odwołanie do FunctionalRT –
Wierzę, że błąd wiadomość mówi, że projekt C# powinien również odwoływać się do FSharp.Core (oczywiście wersji WinRT). Zakładam, że teraz tylko projekt F # odwołuje się do FSharp.Core? Jeśli mam rację, ten błąd pojawiłby się również podczas pisania zwykłej aplikacji C# -F #. –