F#interactive在PCLStorage

时间:2016-01-02 06:25:23

标签: f# portable-class-library f#-interactive

我在F#interactive中尝试使用PCLStorage.FileSystem.Current时收到NotImplementedException。

我用NuGet下载了PCLStorage,右键点击了引用并点击了“发送到F#interactive”

我正在使用VS2015更新1,我按照建议in this answer

重新安装了软件包

如何让PCLStorage在F#interactive中工作?

--> Referenced 'C:\Users\amade\Documents\GitHub\audioExperiments\src\Audio\packages\PCLStorage.1.0.2\lib\portable-net45+wp8+wpa81+win8+monoandroid+monotouch+Xamarin.iOS+Xamarin.Mac\PCLStorage.dll'

> open PCLStorage;;
> PCLStorage.FileSystem.Current;;
> System.NotImplementedException: This functionality is not implemented in the portable version of this assembly.  You should reference the PCLStorage NuGet package from your main application project in order to reference the platform-specific implementation.
   at PCLStorage.FileSystem.get_Current()
   at <StartupCode$FSI_0017>.$FSI_0017.main@()
Stopped due to error

1 个答案:

答案 0 :(得分:2)

您引用的PCL是专门针对所有平台(Xamarin,Windows桌面,Windows手机等)的PCL。这个dll只是用作定义所有单个方法的手段,作为诱饵的一部分并切换PCL技术http://log.paulbetts.org/the-bait-and-switch-pcl-trick/如果你想使用带有FSI的库,那么你需要添加一个特定的参考到相应平台的DLL。在这种情况下,您将要参考从NuGet下载的项目的Windows桌面版本。