2012-09-07 4 views
7

WinRTアプリケーションでは、セッションデータではなくユーザーデータがローカルファイルに保存されます。ファイルは保存され、ApplicationData.Current.LocalFolder経由でロードされます。WinRTアプリケーションのappmanifestを変更すると、アプリケーションデータが破棄されます

アプリマニフェストに軽微な変更を加えるたびに、これらの保存されたファイルとアプリの設定は無効にされ、アプリの起動時に削除されます。開発環境でのみこれはそうですか?これは、パッケージがapp-storeで公開されている場合にも同様に起こりますか?

どうすればこのようなことを防ぐことができますか?バージョンの変更によりデータが失われた場合、ユーザーは非常に不幸になります。

アップデート1:
ハンスアンパッサンのおかげで、私はまた、data files have a Versionことを学びました。データファイルのバージョンを設定すると、バージョンの変更(インクリメントのみ)の問題が修正されましたが、残りのマニフェストの変更は修正されませんでした。

アップデート2:ところで
私はまただけでなく、アプリケーションのプロパティを変更すると、この効果を持つマニフェストことを、観察しました。新しい言語用の新しいリソースファイル(ローカリゼーション)を追加すると、データも削除されます。この奇妙な行動が、店を経由して公開されているインストールされたアプリにも存在するかどうかを知ることは、本当にうれしいことです。

+1

あなたはアプリのバージョンを変更しているようです。 ApplicationData.SetVersionAsync()メソッドを見てください。 –

答えて

0

これは、開発環境でのみ発生します。アプリを公開すると、マニフェストは修正され、変更されません。

*以下の場合を除き、1)変更して再アップロードし、2)マニフェストが認証プロセスによって変更される可能性が高くなり、これが予想されます。

+0

私は理解していない:私は、アプリケーションを変更する場合、私はアプリケーションのバージョンをインクリメントするために使用されます。 MSはバージョン番号をアプリケーションマニフェストに統合しているので、バージョン番号をそこに設定したいと思う。しかし、アプリケーションの拡張機能や修正のためにバージョン番号を変更し、更新されたアプリケーションをストアにアップロードすると、アプリケーションデータを削除したくない。それともあなたの答えを間違えてしまうのですか? – HCL

+0

ストア内のデプロイされたアプリケーションのバージョン番号を変更しても、デバイス上のデータは上書きされません。少なくとも、それは私の理解です。 – ZombieSheep

2

私の質問に対する答えはそれほど簡単ではないようです。結局私はおそらく2つの異なる問題で構成されていることを観察しました。ウェブで私は非常に唯一のlittle Informationを見つけたので、ここで書いたのは私がやったいくつかの簡単なテストに基づいて、少し投機的です。

バージョンはハンスアンパッサンに
感謝を変更し、私は、データファイルがversionを有することができることを学びました。ドキュメントの不足のために、次のように私は、バージョンのテストとバージョンの設定を行います。

await ApplicationData.Current.SetVersionAsync((uint)1, (setVersionRequest) => { }); 

コードは、私は私のデータファイルをロードする前に実行いつでもあります。私は現在ファイルフォーマットに変更がないので、変更コールバックは空のままです{}
上記のコードを挿入すると、バージョンの変更によってバージョン情報が変更されなくなりました。しかし、テストの結果、後でコードが削除され、予期しないことに、バージョンの変更によってアプリケーションデータファイルも削除されることはありませんでした。たぶん彼らは今バージョン管理されているので。 (サイドマークとして、データファイルが失われても常にバージョンの結果を減らします)。

一般的なマニフェストの変更
(バージョン-プロパティを除く)マニフェストの変更プロパティはデータを削除効果がを行っていません。アプリの説明などを変更すると、すべてのデータが削除されます。私は店でこれが起こらないと推測するいくつかの投稿を見つけましたが、私は何の証拠も見つけていません。言語
私が観察した別の効果の

追加、私はアプリ(ressourceファイルを追加すること)に新しい言語を追加する場合、同じことをしていることです。

注:上記の説明はすべて私の開発環境の観察に基づいています。私は具体的な文書を見つけることができませんでした。したがって、あなたのクライアントを非常に不愉快にしないために、関係するユースケースを非常にうまくテストすることを皆にお勧めします。たぶん数ヶ月のうちに、より具体的な文書が利用可能になるでしょう。

関連する問題