4

一部の顧客向けに公開された Silverlight アプリがあります。アップデートの発行に問題があります。

ユーザーが最初に Web ページをロードしたときに、サイトが最後に更新されたときよりもアプリケーション ストレージが古い場合、これが発生します。これにより、アプリケーションが機能します。

だから、2つの質問:

  • ユーザーが保存した Application Storage が、Silverlight サイトへの最後の更新よりも古いかどうかを確認するにはどうすればよいですか?

  • サイトのアプリケーション ストレージを削除するにはどうすればよいですか?

私は電話してみました:

using( var store = IsolatedStorageFile.GetUserStoreForApplication() ) {
  store.Remove();
}
using( var store = IsolatedStorageFile.GetUserStoreForSite()) {
  store.Remove();
}

ファイルに含まれていApp.xaml.csますが、これらは表示されたページには影響しないようです - アプリケーション ストレージが完全にクリアされていません。

4

2 に答える 2

4

•アプリケーション ストレージに保存されているユーザーが、Silverlight サイトへの最後の更新よりも古いかどうかを確認するにはどうすればよいですか?

このコードは、SL アプリケーションが存在するかどうかを確認し、SL アプリケーションを更新するためにアプリに入ります。それが役立つかどうかはわかりませんが、更新があるときにその IsolatedStorageFile で何かをしたいだけの場合は、必要なものである必要があります。

Application.Current.CheckAndDownloadUpdateAsync();
Application.Current.CheckAndDownloadUpdateCompleted += new CheckAndDownloadUpdateCompletedEventHandler(Current_CheckAndDownloadUpdateCompleted);

private void Current_CheckAndDownloadUpdateCompleted(object sender, CheckAndDownloadUpdateCompletedEventArgs e)
{   
   if (e.UpdateAvailable) 
   { 

   } 
}

•サイトのアプリケーション ストレージを削除するにはどうすればよいですか?

IsolatedStorageFile store  = IsolatedStorageFile.GetUserStoreForApplication();
if(store.FileExists(FileName))
{
  store.DeleteFile(FileName);
}
于 2012-09-22T01:34:27.760 に答える
0

xap ファイルのファイル作成日を Silverlight オブジェクトの initParams に書き込むことができます。

<object id="xaml" data="data:application/x-silverlight-2," type="application/x-silverlight-2">
   <param name="initParams" value="<%= GetInitParams() %>" />

コード ビハインド ファイルでは、次のように記述します。

protected string GetInitParams()
{
    string xappath = HttpContext.Current.Server.MapPath(@"~/ClientBin/YourXapFile.xap");
    DateTime xapCreationDate = System.IO.File.GetLastWriteTime(xappath);
    return string.Format("lastUpdateDate={0:d}, xapCreationDate);
}

Silverlight クライアント内で、この日付をアプリケーション ストレージの最終更新と比較できます。GetLastWriteTime()オブジェクトのメソッドを使用して、最終更新の日時を確認できIsolatedStorageFileます。

次に、これら 2 つの日付を比較しDeletefile、必要に応じてファイルを削除します。

于 2012-09-23T17:38:43.880 に答える