Déploiement d’une application .Net sur Raspberry 2

 

La plupart du temps, quand on cherche des informations sur le développement d’une application .Net pour Windows IOT, le déploiement se fait depuis Visual studio.

 

Dans mon cas, le Raspberry se trouve dans un réseau cloisonné sans plateforme de Dev disponible. L’utilisation de l’interface d’admin pour déployer est donc indispensable.

 

J’ai cherché assez longtemps pour arriver à ce résultat.
Certaines parties du processus restent encore manuelles mais vous pourrez surement les automatiser.

 

J’ai créé une application qui affiche des pages web et les rafraîchit automatiquement.
Je veux pouvoir déployer mon application sur le Raspberry en utilisant l’interface d’admin mais également la mettre à jour sans couper le Raspberry.

 

Platform de Dev :

 

Windows 10 insider fast ring.
Visual studio 15 community edition.
Raspberry Pi 2 avec carte SD de 8Gb Windows IOT.

 

Hypothèse :

 

Répertoire de la solution : C:\dev\MyApp
Répertoire du projet : C:\dev\MyApp\AppProject
Répertoire de déploiement : C:\dev\MyApp\deploy

 

1er étape - compiler l’application :

 

Dans Visual studio, compilez l’application pour plateforme ARM en mode Release.

 

2ème étape - adapter les images :

 

Cette étape reste à améliorer. Une « custom build step » peut faire le boulot pour vous éventuellement.

 

Depuis le répertoire de votre projet, allez dans le sous répertoire bin\ARM\Release\ilc\Assets.
Dans ce répertoire se trouvent toutes les images pour l’application. Renommez toutes les images contenant .scale-200 en supprimant cette partie.

 

3ème étape - Packager l’application :

 

Dans le répertoire “C:\Program Files (x86)\Windows Kits\10\bin\x64”, se trouve l’application MakeAppx.exe qui va faire le package.

 

MakeAppx.exe pack /d C:\dev\MyApp\AppProject \bin\ARM\Release\ilc\ /p C:\dev\MyApp\deploy \MyApp.appx

 

4ème étape - Signer l’application :

 

Vous devez créer un nouveau certificat pour votre application avec un mot de passe, voir annexe 1 pour la procédure à suivre si besoin.

 

Dans le répertoire “C:\Program Files (x86)\Windows Kits\10\bin\x64” :

 

signtool.exe sign /a /v /fd SHA256 /f C:\dev\MyApp\MyAppKey.pfx /p [PASSWORD] C:\dev\MyApp\deploy\MyApp.appx

 

Changez [PASSWORD] par votre mot de passe.

 

5ème étape - Déployer l’application :

 

Allez dans l’interface d’admin de votre Raspberry, Section « Apps ».

 

Dans la partie « Install app » de la page :

 

-          App package : sélectionnez l’appx créée aux étapes 3 et 4

 

-          Certificate : Choisissez votre certificat utilisé pour signer l’application (voir étape 4)

 

-          Dependency : Ajoutez les 2 dépendances suivantes :

 

o   C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.NET.Native.Framework.1.3\1.3\arm\ret\Native\Microsoft.NET.Native.Framework.1.3.appx

 

o   C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.NET.Native.Runtime.1.4\1.4\AppX\arm\ Microsoft.NET.Native.Runtime.1.4.appx

 

Adaptez la version 1.3 ou 1.4 avec la version installée sur votre PC.

 

Cliquer sur « Go »

 

Après un certain temps, votre application se trouvera dans la liste des « Installed apps »

 

 

 

Annexe 1 – Création du certificat de l’application

 

Dans Visual studio, allez dans les propriétés du projet que vous voulez déployer.  Dans l’onglet « Application », cliquez sur « Package Manifest… ».
Une nouvelle fenêtre s’ouvre, allez dans l’onglet « Packaging ».
Choisissez « Choose certificate… »  une nouvelle fenêtre va apparaitre.
Pour exporter le certificat, cliquez sur « View Full Certificate », cela affichera la fenêtre normale des certificats Windows.
Sur l’onglet « Details », sélectionnez l’option « Copy to file… » et suivez le Wizard.

 

Category: 
Howtos pour IOT