2012-08-13 8 views
5

ビジュアルスタジオ2012 RCでアプリケーションをコンパイルすると、プロジェクトソースフォルダにbin\フォルダが生成されていることがわかります。このフォルダにはfoo.exeがあります。アプリ。私はアプリのデバッグを開始すると、そのアイコンがスタート画面に置かれて、私はWindows 8アプリケーションのデプロイ

Cで作成した新しいフォルダを見つけることができます:\ Users \ユーザー誰か\のAppData \ローカル\パッケージ\ xxxxx_xxxxxx

をしかし、私はディスク全体を検索した後でも、このフォルダにfoo.exeが見つかりません。 win8アプリケーションには、古いWindowsプログラムとは異なるインストール/展開の仕組みがあるようです。私の質問は次のとおりです:

(1)how/where win8 appが導入/インストールされていますか?

(2)ローカルのデータフォルダ(コードではApplicationData.Current.LocalFolderに相当)として\AppData\Local\Packages\xxxxx_xxxxxx\LocalStateを使用しますが、開始画面のアイコンを右クリックして警告なしでフォルダ全体を削除します。ローカルデータを保存するにはどんな場所ですか?またはSQLiteが必要ですか?例えば、私のアプリはerror.txtにすべてのクラッシュメッセージを書き込みますが、明らかにこの場合はsqliteを使用できません。error.txtにあるものを見る前に、ユーザーがLocalStateフォルダにerror.txtを入れておくと、もう1つのシナリオは、ユーザーがアプリをアンインストールしたいが、ローカルデータ(ファイル)を保存することです。明らかにApplicationData.Current.LocalFolderは良い選択ではありません。

答えて

4

1)Windows 8のパッケージがcに展開されています:\プログラムファイル\は\ windowsappsが、デフォルトでは、あなたドンそのフォルダの所有権がないため、アクセスできません。しかし、それはほとんど無関係です。このフォルダにアクセスすることは決して決してできません。

2)ここでも、アンインストール時にアプリケーションのローカルデータフォルダを削除することが想定されています。そうしないと、店舗を経由してアプリをデプロイしたときに不正行為を起こして利用可能なストレージをすべて使い切った場合、ユーザーがそのデータを簡単に削除することはできません。しかし、警告がないというあなたの主張は真実ではありません。アンインストールポップアップに「このアプリと関連情報はこのPCから削除されます」と表示されます

場合によっては、ローミングフォルダにデータを保存することもできますが、このフォルダは大量のデータデバイス間をローミングするためのアプリケーション設定/設定オプションを保持することができます。あなたはおそらく、クラッシュログをdevの間に(十分に小さい場合)そこに置くことができますが、アプリがアンインストールされる前にクラウドに同期されるという保証はありません。おそらく、Live SDKを使用してクラウドとデータを同期させることが最善の策ですが、データが瞬時にクラウドに書き込まれるという保証はありません。

1

Windows 8 Metroアプリケーションのファイルシステムにデータを保存するには、独立したストレージを使用する必要があります。次の場所を使用して場所を見つけることができます。

Windows.Storage.ApplicationData.Current.LocalFolder.Path;

各プラットフォームのアーキテクチャが変わるにつれて、データがどこに保存されるのかは決して分かりませんが、この定数はすべてのアプリケーションで確実に動作します。アプリケーションがインストールされ、アップグレードされている間、このフォルダは「安全」に保たれているため、データを使用していないようにすべきです。

SQLLiteネットこのページの一番下に見つけることができます使用して

本の例:http://timheuer.com/blog/archive/2012/05/20/using-sqlite-in-metro-style-app.aspx

+0

しかし、私の質問は: 'Windows.Storage.ApplicationData.Current。ユーザがアプリアイコンを右クリックしてアンインストールを選択すると、警告なしで削除されます。私のアプリには適していません。私はより安全な場所が欲しい。 –

+1

メトロアプリケーションはこのシナリオをサポートしていません。隔離されたストレージは、ファイルエクスプローラを実装せずにファイルシステムにアクセスする唯一の書き込みアクセスです。インストール後もこのデータを保存したい場合は、それを「クラウドサービス」とインクリメンタルに同期させ、再インストール時にアプリケーションを更新する必要があります。 – LewisBenge

関連する問題