Installer My TV Player sur Windows 11
Il existe deux canaux d’installation, et ils existent pour des raisons différentes. L’un continue de fonctionner si l’autre disparaît.
Il y a 2 façons d’installer l’Application Windows, et la seconde n’est pas une solution de repli pour ceux qui ne peuvent pas utiliser la première. Elles servent des objectifs différents.
Depuis le Microsoft Store
La voie normale. Cherchez My TV Player, installez, c’est fait. Les mises à jour arrivent comme celles de n’importe quelle autre application du Store, et vous n’y pensez plus jamais.
Pour la plupart des gens, c’est la réponse, et le reste de cet article est du contexte.
Depuis notre propre domaine
Le second canal existe pour une seule raison, énoncée sans détour dans nos propres notes de distribution : le Store peut retirer une application, et cela ne doit pas empêcher les nouvelles installations ni les mises à jour.
La même build de bureau est donc aussi publiée sous forme de paquet MSIX, annoncé par un document App Installer servi depuis notre domaine et ses miroirs. Windows App Installer interroge ce document et met l’application à jour sans aucune intervention du Store.
Une version publie 4 artefacts plus une liste de sommes de contrôle :
MyTvPlayer.appinstaller the feed, stable URL, carries update policy
MyTvPlayer.Desktop.Windows_<ver>_x64.msix the app, version-stamped
Microsoft.WindowsAppRuntime.1.8_<ver>_x64.msix framework dependency
SHA256SUMS.txt integrity list for the download page
Deux choses comptent dans cette liste.
Le paquet de l’application est .NET autonome, il n’y a donc pas d’étape 0 où vous installez d’abord un runtime .NET. Le Windows App SDK reste dépendant du framework, parce que c’est un framework partagé et maintenu séparément, ce qui explique que son paquet soit posé à côté plutôt qu’intégré. Une première installation n’a besoin d’aucun aller-retour vers le Store pour le récupérer.
Et la version dans le nom de fichier est un choix de conception, pas de la propreté. Les URL sont immuables et donc mises en cache, ce qui est ce qui rend un miroir utile. Le seul fichier qui ne doit jamais être mis en cache est le flux lui-même, et son propre attribut de version doit augmenter à chaque publication, sinon le document est traité comme inchangé.
Ce que je ne m’attendais pas à voir devenir un problème d’hébergement, jusqu’à ce que nos propres notes le désignent comme le problème classique : servez le flux avec le mauvais type de contenu et Windows soit le télécharge comme du texte, soit le rejette sans erreur utile. 5 extensions de fichier ont besoin de types explicites, et la correction relève de l’origine plutôt que d’une bordure qui réécrit du HTML.
Ce qui n’est pas dans le paquet
Aucun identifiant. La build refuse purement et simplement de s’exécuter si une surcharge locale non suivie des réglages est présente, et après empaquetage elle vérifie que le fichier de réglages livré a toujours des champs de clé vides.
Les clés des services de métadonnées sont livrées après votre authentification et appliquées à l’exécution, si bien que rien de sensible ne se trouve dans un artefact que n’importe qui peut télécharger. La vérification maintient cet état. Elle n’existe pas pour attraper un problème connu.
Si vous vérifiez vous-même un paquet téléchargé : Windows n’installe pas du tout un MSIX non signé, et l’éditeur déclaré dans le paquet doit correspondre exactement au sujet du certificat de signature. Une discordance produit une erreur signtool opaque plutôt qu’un message utile, ce qui compte si vous réempaquetez un jour pour une organisation.
Le premier lancement
Le démarrage a reçu beaucoup d’attention et les chiffres ont bougé : le lancement à chaud jusqu’à l’Accueil est passé de 11.6 secondes à environ 4.6, et le passage du choix d’un profil à l’arrivée sur l’Accueil a été à peu près divisé par deux, à environ 1.2 seconde.
Une chose n’a délibérément pas été accélérée. Le sélecteur de profil ne se saute jamais lui-même, même dans un foyer avec un seul profil, et même si l’avance automatique était sur la table comme moyen d’atteindre un objectif de moins de 3 secondes. Elle a été rejetée définitivement. Choisir un profil est une frontière de sécurité, et une frontière que l’on franchit automatiquement a cessé d’en être une. Si votre foyer utilise le contrôle parental, c’est ce sélecteur qui l’applique.
Le premier lancement après l’ajout d’une grande source est une affaire à part, et il est plus lent que tous les lancements qui suivent, parce que la playlist est analysée et indexée localement plutôt que sur un serveur. Sur une console, le cas à froid a été mesuré à 39.5 secondes et 1.4 GB ; un ordinateur de bureau est plus rapide mais la forme est la même.
Ensuite
Importer une playlist dans la console web, ou directement dans l’Application Windows, et l’application a quelque chose à montrer. Si vous avez aussi une Xbox, appairez-la maintenant et elle hérite de tout : installer sur Xbox.
Deux choses valent la peine d’être mises en place dès le jour 1 sur un ordinateur de bureau en particulier : les raccourcis clavier, qui sont les touches standard d’un lecteur multimédia avec une règle propre à la télévision en direct qui piège les gens, et regarder sur un second écran si la machine est une machine de travail.
Ce que cet article a mesuré22 affirmations, chacune avec les preuves derrière elles
| Réclamation | Preuve | Compté |
|---|---|---|
| Un second canal d’installation existe précisément pour qu’un retrait du Store ne puisse pas empêcher les nouvelles installations ni les mises à jour. Il sert la même build de bureau sous forme de MSIX annoncé par un document App Installer sur notre propre domaine. | n = 1 | 31 août 2026 |
| Le paquet est .NET autonome par défaut, donc aucun runtime .NET n’a besoin d’être installé au préalable. Le Windows App SDK reste dépendant du framework et son paquet est publié à côté. | n = 1 | 31 août 2026 |
| Aucun identifiant n’est embarqué dans l’installateur. La build refuse d’empaqueter une surcharge locale des réglages, et vérifie après empaquetage que le fichier de réglages livré a toujours des champs de clé vides. | n = 1 | 31 août 2026 |
| Windows n’installe pas un MSIX non signé, et l’éditeur déclaré dans le paquet doit correspondre exactement au sujet du certificat de signature. | n = 1 | 31 août 2026 |
| Le format d’empaquetage réserve un quatrième champ de version, donc une version numérotée 1.4.2 est empaquetée en 1.4.2.0, et l’attribut de version propre au flux doit augmenter à chaque publication, sinon le document de mise à jour est traité comme inchangé. | n = 1 | 1 sept. 2026 |
| La signature doit être horodatée, sinon les paquets installés cessent d’être validés le jour où le certificat de signature expire au lieu de continuer à fonctionner. | n = 1 | 1 sept. 2026 |
| Un certificat publiquement approuvé rend l’installation ordinaire ; un certificat auto-signé ou d’une autorité privée oblige chaque utilisateur à importer un certificat dans un magasin de confiance au niveau machine avec des droits d’administrateur, ce qui n’est explicitement pas un parcours grand public. | n = 1 | 1 sept. 2026 |
| Servir le document de mise à jour avec le mauvais type de contenu est désigné comme l’échec d’hébergement classique, produisant soit un téléchargement en texte, soit un rejet sans erreur utile. Cinq extensions ont besoin de types explicites. | n = 5 | 1 sept. 2026 |
| Le document de mise à jour est le seul artefact qui ne doit pas être mis en cache, tandis que les paquets estampillés d’une version à côté de lui sont immuables et donc sûrs à mettre en cache indéfiniment. | n = 1 | 1 sept. 2026 |
| Les consignes d’hébergement avertissent que les transformations de bordure orientées HTML ne doivent pas être appliquées à ces fichiers, et que la correction du type de contenu relève de l’origine plutôt que de la bordure. | n = 1 | 1 sept. 2026 |
| La fréquence à laquelle l’application installée consulte le flux est figée dans le paquet au moment de la build plutôt que d’être un réglage utilisateur. | n = 1 | 1 sept. 2026 |
| Revenir à une version antérieure est possible mais protégé par un commutateur de build explicite, parce qu’en temps normal une version inférieure dans le flux est refusée. | n = 1 | 1 sept. 2026 |
| Un paquet plus petit qui dépend d’un runtime installé peut être construit et est explicitement marqué comme non destiné aux versions publiques. | n = 1 | 1 sept. 2026 |
| Un paquet ARM64 est produit par le même script avec un commutateur de plateforme plutôt que par un pipeline séparé. | n = 1 | 1 sept. 2026 |
| L’étape d’injection de secrets utilisée ailleurs ne fait délibérément pas partie de ce pipeline, parce que ces identifiants sont livrés après authentification et appliqués à l’exécution depuis une phase antérieure. | n = 1 | 1 sept. 2026 |
| Le framework d’exécution de l’application est publié à côté de l’application pour qu’une première installation n’ait pas besoin d’un aller-retour vers le Store pour l’obtenir. | n = 1 | 1 sept. 2026 |
| Les applications Windows et console sont deux têtes d’une même solution partageant toute la logique métier et l’interface commune, compilées dans chaque tête plutôt que dupliquées. | n = 1 | 1 sept. 2026 |
| Le script d’empaquetage refuse purement et simplement de construire quand un fichier de réglages local non suivi est présent, parce que le fichier de projet le copierait dans la charge utile. | n = 1 | 1 sept. 2026 |
| Le flux peut être régénéré à partir d’une build précédente sans recompiler, ce qui rend une correction d’hébergement peu coûteuse à republier. | n = 1 | 1 sept. 2026 |
| L’adresse publique depuis laquelle les artefacts seront servis est figée dans le flux au moment de la build et doit correspondre à l’endroit où ils atterrissent réellement. | n = 1 | 1 sept. 2026 |
| Le lancement à chaud jusqu’à l’Accueil a été ramené de 11.6 secondes à environ 4.6 secondes, et le passage du choix d’un profil à l’arrivée sur l’Accueil d’environ 2.4 à à peu près 1.2 seconde. | n = 1 | 31 août 2026 |
| Le sélecteur de profil ne se saute pas lui-même, même quand un seul profil a jamais été utilisé, et le raccourci qui aurait accéléré le démarrage a été rejeté définitivement. | n = 1 | 31 août 2026 |