是否可以在System.IO和StorageFile方法之间切换,具体取决于用户是否运行Windows 8,而无需创建两个单独的项目?我知道我可以在Windows 8中使用System.IO,但是我想利用内置的异步方法,如果可能的话(即用户在Win8上)。
我目前没有Windows 7机器可供测试,但我担心程序启动时可能会丢失库错误。有没有办法做到这一点?
答案 0 :(得分:1)
异步StorageFile方法是.net 4.5 Framework的一部分。您的应用应该将框架部署为安装依赖项 - 请参阅.NET Framework Deployment Guide for Developers
答案 1 :(得分:1)
StorageFile类不是.NET 4.5的一部分,它是Windows运行时的一部分。这些类可以通过它们的根命名空间Windows
轻松识别。 Windows运行时API仅在Windows 8上可用,主要用于Windows Store apps
。虽然我自己也没有尝试过can be used in desktop applications。我仍然不确定文件IO类有多好,因为Windows商店应用程序在沙盒环境中运行,并且基于其清单中声明的功能,只能有限地访问文件系统。
对于桌面应用程序中的文件IO,我会坚持使用System.IO
命名空间中的.NET类。在.NET 4.5中,也有几种异步方法可用,主要在Stream,StreamReader和StreamWriter类中,可用于使用async / await范例读取和写入文件。它们不仅仅绑定到Windows 8,但它们确实需要安装.NET 4.5 excludes Windows XP。
不幸的是,我所知道的.NET 4.5中没有等同于StorageFile.GetBasicPropertiesAsync
的异步方法。如果您确实需要将这些调用设置为异步,则可以始终将同步调用包装到您可以从UI线程调用的异步方法中。