2016-10-13 5 views
0

私は長年にわたり店舗にいたWindows Phone 7アプリを持っています。 WP 7.x、8.0、および8.1デバイスにインストールされます。私はアプリをWP8.1をターゲットに変換しているので、新しいMicrosoft AdControl(古いものは年末に広告を配信しなくなる)を使うことができます。これは、古いIsolatedStorageFile.GetUserStoreForApplication()を使用する代わりに、ApplicationData.Current.LocalFolderを使用してデータを読み書きする必要があることを意味します。WP7からWP8.1アプリのアップデート。 WP8.1 ApplicationDataはWP7 IsolatedStorageFileを使用して保存された同じデータにアクセスしますか?

ユーザーには、IsolatedStorageFile.GetUserStoreForApplication()を使用して保存された多数のデータがあります。アプリケーションをWP8.1バージョンにアップグレードする場合、これらのデータが失われず、ApplicationData.Current.LocalFolderを使用してデータにアクセスできることを確認したいと思います。

これは誰でも確認できますか?

これは私がWP7にデータを書いた方法です:

using (IsolatedStorageFile applicationStorage = IsolatedStorageFile.GetUserStoreForApplication()) 
{ 
    using (IsolatedStorageFileStream file = applicationStorage.OpenFile(filename, FileMode.Create, FileAccess.Write)) 
    { 
     using (StreamWriter sw = new StreamWriter(file)) 
     { 
      sw.WriteLine("some data goes here"); 
     } 
    } 
} 

これは私がWP8.1でデータを読み込みする方法である。

using (Stream stream = await ApplicationData.Current.LocalFolder.OpenStreamForReadAsync(filename)) 
{ 
    using (StreamReader sr = new StreamReader(stream)) 
    { 
     String line = sr.ReadLine(); 
     // Do something with line 
    } 
} 
分離ストレージを使用して

答えて

3

のWindows Phone 7のアプリ、:

var store = IsolatedStorageFile.GetUserStoreForApplication(); 

のWindows 8.1/UWPアプリ:

var localFolder = Windows.Storage.ApplicationData.Current.LocalFolder; 

両方が同じフォルダになります。絶対パスが異なっている:

  1. WP7は: "C:\データ\ユーザーのローカル\ DefApps \のAppData \ {YOUR_APP_IDを} \"
  2. WP 8.1/UWP:「C:\データ\ユーザー\ DefApps \ AppData \ Local \ Packages \ YOURCOMPANY.YOURAPP_SOMEHASH \ LocalState "

ただし、両方のパスは同じフォルダ/ファイルを内部で共有します。最も重要なことは、Package.appxmanifest XMLを編集することです。 Visual Studioの場合、 "ビューコード"を右クリックしてください( "ビューデザイナー"で開かないでください)。あなたは、この行を編集する必要があり、このXMLで:

<mp:PhoneIdentity PhoneProductId="NEW_APP_ID" PhonePublisherId="00000000-0000-0000-0000-000000000000" /> 

(古すぎるWP7アプリから)古い発行者IDによって古いWP7のAppとPhonePublisherIdのIdでPhoneProductIdを交換してください。あなたがこれをしないと、そのコードはあなたに異なるフォルダを与えます(WP 8.1/UWPコードはあなたに空のフォルダを与えます)。ただし、この変更されたIDを使用すると、すべての古いデータを含む同じフォルダが表示されます。

新しいアプリはインストール後に古いアプリを置き換えます。

+0

GeoITに感謝します。特に、PhoneProductIdの追加の部分については、 – Jared

関連する問題