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