4

Lorsqu'une application Silverlight 4 est installée et exécutée hors de l'environnement de navigation, il est possible que l'application reconnaisse automatiquement les mises à jour du fichier .xap (et installer automatiquement ou inviter l'utilisateur à mettre à jour)?Mise en cache XAP dans les applications Silverlight hors navigateur (OOB)

Si vous accédez à l'application à partir de son URL Web d'origine, vous obtenez automatiquement la dernière & la plus élevée (en fonction de vos paramètres). Mais une fois que j'installe l'application pour exécuter OOB, il ne semble pas reconnaître les mises à jour du fichier .xap d'origine, ni aucun moyen de déclencher une mise à jour (en dehors du clic droit, de la désinstallation et puis aller sur le site pour obtenir la dernière version).

Merci à l'avance

Répondre

3

Ceci est quelque chose que votre application a besoin de mettre en œuvre. Cependant, l'objet Application fournit un moyen simple d'y parvenir via la méthode CheckAndDownloadUpdateAsync.

+0

fantastique, je vous remercie. – enforge

3

Des informations supplémentaires pour d'autres personnes regardant la méthode CheckAndDownloadUpdateAsync ne trouvant pas de mise à jour. Assurez-vous d'avoir signé votre fichier xap.

"Projet SL" -> Propriétés-> Signing-> Consultez "Signez le fichier XAP"

également CheckAndDownloadUpdateAsync semblait bloquer le thread d'interface utilisateur lorsqu'il est placé dans le Application_Startup() que de nombreux échantillons suggèrent. Le placer dans un arrière-plan était moins dérangeant et nous a permis de personnaliser la fréquence du contrôle.

Mise à jour: Je ne suis pas sûr que CheckAndDownladUpdateAsync se comporte toujours de la même manière avec SL5. Voilà comment je l'ai fait avec SL4:

J'enveloppa tout code qui a besoin du thread d'interface utilisateur avec Dispatcher.BeginInvoke() dont:

Deployment.Current.Dispatcher.BeginInvoke(() => 
{ 
    App.Current.CheckAndDownloadUpdateCompleted += new CheckAndDownloadUpdateCompletedEventHandler(App_CheckAndDownloadUpdateCompleted); 
    App.Current.CheckAndDownloadUpdateAsync(); 
} 
+0

+1 pour mentionner la nécessité de signer le XAP. – jv42

+0

Pourriez-vous fournir un exemple de la façon dont vous avez intégré l'arrière-plan et CheckAndDownloadUpdateAsync()? Je reçois une exception de thread croisé invalide lorsque j'essaie de le faire à votre façon ... – rumblefx0

+0

Cela a été utilisé avec SL4, je ne suis pas sûr si elle s'applique toujours à SL5. J'ai enveloppé tout code qui a besoin du thread UI avec Dispatcher.BeginInvoke(). Y compris: App.Current.CheckAndDownloadUpdateCompleted + = new CheckAndDownloadUpdateCompletedEventHandler (App_CheckAndDownloadUpdateCompleted); App.Current.CheckAndDownloadUpdateAsync(); – Fares