0

ユーザーがWindows8を実行しているかどうかに応じて、2つの別々のプロジェクトを作成せずに、System.IOメソッドとStorageFileメソッドを切り替えることはできますか?Windows 8でSystem.IOを使用できることはわかっていますが、可能であれば、組み込みの非同期メソッドを利用したいと思います(つまり、ユーザーがWin8を使用している場合)。

現在、テストするWindows 7マシンはありませんが、プログラムの起動時にライブラリの欠落エラーがスローされる可能性があるのではないかと心配しています。これを行う方法はありますか?

4

2 に答える 2

1

非同期StorageFileメソッドは、.net4.5フレームワークの一部です。アプリは、インストールへの依存関係としてフレームワークをデプロイする必要があります-開発者向けの.NETFrameworkデプロイメントガイドを参照してください

于 2012-12-08T18:05:40.933 に答える
1

StorageFileクラスは.NET4.5の一部ではなく、Windowsランタイムの一部です。このようなクラスは、ルート名前空間で簡単に認識できますWindows。WindowsランタイムAPIはWindows8でのみ使用可能であり、主にで使用するように設計されていますWindows Store apps。自分で試したことはありませんが、デスクトップアプリケーションでも使用できます。それでも、Windowsストアアプリはサンドボックス環境で実行され、マニフェストで宣言された機能に基づいてファイルシステムへのアクセスが制限されているため、ファイルIOクラスでどれほどうまく機能するかはわかりません。

System.IOデスクトップアプリケーションのファイルIOの場合、名前空間の.NETクラスを使用します。.NET 4.5には、主にStreamStreamReader、およびStreamWriterクラスで使用可能ないくつかの非同期メソッドがあり、async/awaitパラダイムを使用してファイルの読み取りと書き込みに使用できます。これらはWindows8のみにバインドされているわけではありませんが、WindowsXPを除く.NET4.5をインストールする必要があります。

StorageFile.GetBasicPropertiesAsync残念ながら、私が知っている.NET4.5に相当する非同期メソッドはありません。これらの呼び出しを本当に非同期にする必要がある場合は、同期呼び出しを、UIスレッドから呼び出すことができる独自の非同期メソッドにいつでもラップできます。

于 2012-12-09T08:03:03.867 に答える