2009-11-12 11 views
27

Silverlightコントロールをパッケージ化してSharePoint Webパーツに展開しました。私は更新プログラムをプッシュした後にブラウザの新しいバージョンをロードすることに問題があります。私は、私のxapプロジェクトのアセンブリとファイルのバージョンを更新していますが、それは問題ではないようです。ブラウザに新しいxapをロードさせる唯一の方法は、一時的なインターネットファイルに入り、削除することです。私にとっては、開発中は問題ありませんが、生産に入る前に解決策を見つける必要があります。何か案は?更新後にブラウザに強制的にSilverlight xapを読み込ませる

答えて

35

これは、ブラウザがリソース要求を処理する方法と関係があります。 Flashにも同様の問題があり、いくつかの回避策があります。

問題点と解決方法を詳しく示すarticleです。

私はこのような何かを示唆している:

はあなたのhtmlであなたのXAPのためにこれを持って言う:

<param name="source" value="ClientBin/myApp.xap"/> 

私は考えあなたがプッシュ操作を行うたび、それはあなたがバージョン番号を変更したバージョンを。例:

<param name="source" value="ClientBin/myApp.xap?ver=1"/> 
+0

を以下のweb.configファイルを置くバックアセンブリバージョン(すなわち、1.0.0.0)にその値を関連付けしていますか? –

+1

@Chrisいいえ、それは完全に作られています。変更をクライアントにプッシュしたいときはいつでも、変更する限り何でも置くことができます。ベストプラクティスは、あなたのバージョニングと一線を保つことでしょう。 – Joseph

+1

それはそれをしました、提案のおかげで。 –

2

素晴らしい! Windows Phone開発でも働いていました。

私が行入れている:

NavigationService.Navigate(new Uri("/Game.xaml?versao="+version, UriKind.RelativeOrAbsolute)); 

をそして方法OnNavigatedToオーバーライド:tは毎回あなたが展開することを意味し、の.xapキャッシングに実行するのは非常に珍しいことではありません

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 
    string var; 
    if (NavigationContext.QueryString.TryGetValue("version", out var)) 
    { 
     ... 
    } 
} 
2

をSilverlightアプリケーションの新しいバージョンでは、ブラウザは更新された.XAPファイルをダウンロードしません。

解決策の1つは、IISのプロパティを変更することです。ダウンロードしてしまいます

Open IIS Manager 
Go to “Default Web Site” and find web site for your Silverlight project. 
Find the .XAP file under ClientBin. 
Go to the properties page of the .XAP file, on HTTP Headers Tab, Turn on “Enable Content Expiration”, click the “Expire Immediately” radio button. 
Save the changes. 

この方法で最新の.xap(最新の.xapファイルがある場合のみ):あなたは、これらの手順に従って、お使いの.xapファイルのための「コンテンツの有効期限をHTTPヘッダーを有効にする」オプションを有効にすることができますブラウザを閉じなくてもページを更新することができます。

希望すると便利です。

1

はClientBin

<configuration> 
    <system.webServer> 
    <staticContent> 
     <clientCache cacheControlMaxAge="0.00:00:01" cacheControlMode="UseMaxAge"/> 
    </staticContent> 
    </system.webServer> 
</configuration> 
関連する問題