Home Packaging Microsoft Silverlight 5.x
Microsoft Silverlight 5.x PDF Print E-mail
Written by Cyril Pineiro   
Sunday, 08 April 2012 13:17

On s'attaque à Silverlight, comme d'habitude Microsoft nous créé un Installeur 
ne répondant pas aux normes (Best Practices) de leur Produit.

Afin de rendre leur installeur "Best Practice" il y a plusieurs solutions,
nous allons en aborder 2 dont une pour laquelle j'ai une grande préférence.

Nous commençons donc par télécharger Silverlight.exe chez Microsoft :

Url : http://www.microsoft.com/getsilverlight/handlers/getsilverlight.ashx

Puis nous faisons une extraction de son contenu en tapant la commande suivante depuis un prompt MSDOS dans le répertoire courant :

Silverlight.exe" /extract

La fenêtre suivante apparait, nous choisissons ou nous voulons décompresser les fichiers.

 

Nous obtenons les fichiers suivants :

install.exe
install.res.dll
silverlight.7z
silverlight.msi

Nous ouvrons le fichier silverlight.7z puis on en extrait le fichier Silverlight.msp

Maintenant nous avons :

install.exe
install.res.dll
silverlight.7z
silverlight.msi
Silverlight.msp


Seul silverlight.msi et Silverlight.msp nous interresse, on efface les autres.

Il faut d'abord savoir que le fichier silverlight.msi ne contient aucun fichier
et n'installe rien sur le poste si ce n'est une valeur de registre, tous les fichiers
sont contenus dans Silverlight.msp, donc ce que nous devons faire c'est installer
le MSI en lui appliquant le MSP, pour cela on pourrait utiliser la commande suivante :

msiexec /i silverlight.msi /update Silverlight.msp /QB!

Dans ce cas nous sommes Best Practice.

Le problème c'est que nous sommes en entreprise donc nous avons besoin de désactiver
la mise à jour, aussi suivant le besoin de notre client nous pourrions être amené
à devoir personnaliser la configuration de Silverlight; pour cela et afin de rester
Best Practice nous devrions créer un MST à appliquer à notre MSI, la 2 problèmes possibles:

- La ligne de commande d'application du MST et du PATCH plante (durant mes tests)
- Si le Package doit être Patché via WSUS, et bien il ne le sera pas!

Donc si nous voulons que notre Package soit mis à jour via WSUS, il faut qu'il soit
"untouched", dans ce cas pour couper la mise à jour automatique ou personnaliser
la configuration il faudra trouver un moyen d'appliquer des les clefs de registre
correspondantes; ou sinon utiliser les GPO :

Ex :http://www.microsoft.com/getsilverlight/resources/documentation/grouppolicysettings.aspx

Si notre package n'est pas mis à jour via WSUS nous pouvons alors créer une
installation administrative du package sur laquelle nous appliquons le Patch,
puis nous créons un MST

Pour l'installation administrative la commande suivante fera l'affaire :

msiexec /p Silverlight.msp /a silverlight.msi

Noter que le changement de taille du MSI, il contient maintenant les fichiers, clefs de registre etc.

Bon cela reste une installation administrative, et puis notre MSI n'est plus
signé, mais nous sommes tout de même Best Practices, comme je n'aime pas
trop les installations administrative on va recréer le MSI avec le CAB streamé
en utilisant un des script de la SDK de Microsoft (WiMakCab.vbs)

MSI SDK : http://www.microsoft.com/download/en/details.aspx?id=19054 (IntelSDK.msi)

Nous obtenons un MSI Complet de notre version de Silverlight, sur lequel nous pourrons appliquer un MST

Quelques clefs de registre intéressante pour la personnalisation de la configuration de Silverligth :


Clef : 
HKEY_LOCAL_MACHINE\Software\Microsoft\Silverlight\DRMEnabled
Type : REG_DWORD
Valeurs Possibles :
- Disable DRM Content : 0x00000000
- Enable DRM Content : 0x00000001

Clef : 
HKEY_LOCAL_MACHINE\Software\Microsoft\Silverlight\UpdateMode
Type : DWORD
Valeurs Possibles :
- Auto Update : 0x00000000
- Prompted Updates : 0x00000001
- No Updates : 0x00000002

Clef : 
HKEY_LOCAL_MACHINE\Software\Microsoft\Silverlight\AllowInstallOfElevatedTrustApps
Type : DWORD
Valeurs Possibles :
- Disabled : 0x00000000
- Enabled : 0x00000001

Clef : 
HKEY_LOCAL_MACHINE\Software\Microsoft\Silverlight\AllowLaunchOfElevatedTrustApps
Type : DWORD
Valeurs Possibles :
- Disabled : 0x00000000
- Enabled : 0x00000001

Clef : 
HKEY_LOCAL_MACHINE\Software\Microsoft\Silverlight\AllowWebcam
Type : DWORD
Valeurs Possibles :
- Disabled : 0x00000000
- Enabled : 0x00000001

Clef : 
HKEY_LOCAL_MACHINE\Software\Microsoft\Silverlight\AllowUdpMulticastClientApi
Type : DWORD
Valeurs Possibles :
- Disabled : 0x00000000
- Enabled : 0x00000001

Clef : 
HKEY_LOCAL_MACHINE\Software\Microsoft\Silverlight\AllowMaximumIsolatedStorage
Type : DWORD
Valeurs Possibles :
- Disabled : 0x00000000
- Enabled : 0x00000001