是否可以使用F#开发Windows 8 Universal App

时间:2015-02-26 17:48:05

标签: f# windows-8.1

我想用F#开发Windows 8.1通用应用程序。所以我创建了F#便携式库。但遗憾的是我无法在其上打开Windows.Storage命名空间。

然后我创建了C#Windows Apps类库,在那里我实现了我需要的功能:

 public static async Task<string> ReadFileToString(string filename)
 {
        StorageFile file = await StorageFile.GetFileFromPathAsync(filename);
        string fileContent =  "";
        fileContent = await FileIO.ReadTextAsync(file);

        return fileContent;
 }

然后我想在我的F#可移植库中添加引用到这个C#库但是得到错误消息,

  

&#34;这是不可能的,因为该项目是为平台设计的   (.NETCore)与current(.NETPortable)&#34;

不同

可以使用F#开发Windows 8通用应用程序吗?

1 个答案:

答案 0 :(得分:1)

这是我找到的解决方案。

  • 使用NuGet将PCLStorage安装到F#便携式库和Windows 8.1 Store App(!)
  • 在F#库(!)
  • 中设置“复制到本地”= False

这是f#库的代码:

namespace PortableLibrary1

open PCLStorage

type MyClass() =
    member this.Do (filename : string) (text : string) = 
        let folder = FileSystem.Current.LocalStorage       
        async {
            let! result = Async.AwaitTask(folder.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting))
            result.WriteAllTextAsync(text) |> ignore        
        } |> Async.RunSynchronously

这是一个C#Store应用代码:

 private void Button_Click(object sender, RoutedEventArgs e)
 {
    MyClass cls = new MyClass();             
    cls.Do("uuu.ii", "message of me");
 }