Intégration de .NET Framework
Les runtimes .NET Framework sont devenues incontournables et sont nécessaires pour utiliser de nombreux programmes. Cette annexe va vous permettre d'intégrer .NET Framework 1.1 SP1 et 2.0. L'installeur de la version 3.0 intègre la version 2.0 mais il ne s'agit que d'une évolution de cette dernière avec le support de Windows Vista, et n'est à priori pas nécessaire (son switch est /q /norestart). Cette annexe ne se préoccupera donc que des deux premières version. Nous y intégrerons les correctifs et les modules de prise en charge linguistique.
1. Préparation du .NET Framework 1.1 SP1
2. Préparation du .NET Framework 2.0
3. Installation silencieuse
4. Pour gagner de la place
Ce dont vous avez besoin :
1. Préparation du .NET Framework 1.1 SP1 :
Commencez par télécharger les fichiers dotnetfx.exe, langpack.exe, NDP1.1sp1-KB867460-X86.exe, NDP1.1sp1-KB886903-X86.exe et NDP1.1sp1-KB928366-X86.exe dans un dossier temporaire "C:\Temp\dotnetfx_install\".
La suite des opérations pourra être effectuée facilement à partir d'un batch. Créez un batch (par exemple dotnetfx.bat) et insérez-y les lignes suivantes :
@echo off
echo Extraction des fichiers...
start /wait C:\Temp\dotnetfx_install\dotnetfx.exe /T:C:\Temp\dotnetfx /C
start /wait C:\Temp\dotnetfx_install\langpack.exe /T:C:\Temp\dotnetfx /C
start /wait C:\Temp\dotnetfx_install\NDP1.1sp1-KB867460-X86.exe /XP:C:\Temp\dotnetfx
start /wait C:\Temp\dotnetfx_install\NDP1.1sp1-KB886903-X86.exe /XP:C:\Temp\dotnetfx
start /wait C:\Temp\dotnetfx_install\NDP1.1sp1-KB928366-X86.exe /XP:C:\Temp\dotnetfx
echo.
echo Integration des fichiers...
msiexec /a C:\Temp\dotnetfx\netfx.msi TARGETDIR="C:\xpcd\$OEM$\$1\applications\dotnetfx\" /qb
msiexec /a C:\Temp\dotnetfx\langpack.msi TARGETDIR="C:\xpcd\$OEM$\$1\applications\dotnetfx\" /qb
msiexec /p C:\Temp\dotnetfx\S867460.msp /a C:\xpcd\$OEM$\$1\applications\dotnetfx\netfx.msi
msiexec /p C:\Temp\dotnetfx\M886903.msp /a C:\xpcd\$OEM$\$1\applications\dotnetfx\netfx.msi
msiexec /p C:\Temp\dotnetfx\M928366.msp /a C:\xpcd\$OEM$\$1\applications\dotnetfx\netfx.msi
echo.
Ensuite, exécutez-le. Le processus est le suivant : les quatre fichiers compressés téléchargés sont extraits dans le dossier "C:\Temp\dotnetfx\". Ensuite, les fichiers nécessaires à l'installation sont copiés dans le dossier "...\$OEM$\$1\applications\dotnetfx\" à l'aide d'une installation administrative (switch /a) en mode silencieux (switch /qb). Le SP1 et les patchs KB922770 et KB928366 sont appliqués directement sur le fichier d'installation netfx.msi.
2. Préparation du .NET Framework 2.0 :
Commencez par télécharger les fichiers dotnetfx.exe, langpack.exe, NDP20-KB917283-X86.exe et NDP20-KB922770-X86.exe dans un dossier temporaire "C:\Temp\dotnetfx2_install\".
La suite des opérations pourra être effectuée facilement à partir d'un batch. Créez un batch (par exemple dotnetfx2.bat) et insérez-y les lignes suivantes :
@echo off
echo Extraction des fichiers...
start /wait C:\Temp\dotnetfx2_install\dotnetfx.exe /T:C:\Temp\dotnetfx2 /C
start /wait C:\Temp\dotnetfx2_install\langpack.exe /T:C:\Temp\dotnetfx2_lang /C
start /wait C:\Temp\dotnetfx2_install\NDP20-KB917283-X86.exe /extract C:\Temp\dotnetfx2
start /wait C:\Temp\dotnetfx2_install\NDP20-KB922770-X86.exe /extract C:\Temp\dotnetfx2
start /wait C:\Temp\dotnetfx2_install\NDP20-KB928365-X86.exe /extract C:\Temp\dotnetfx2
echo.
echo Integration des fichiers...
msiexec /a C:\Temp\dotnetfx2\netfx.msi TARGETDIR="C:\xpcd\$OEM$\$1\applications\dotnetfx2\" /qb
msiexec /a C:\Temp\dotnetfx2_lang\langpack.msi TARGETDIR="C:\xpcd\$OEM$\$1\applications\dotnetfx2\" /qb
msiexec /p C:\Temp\dotnetfx2\NDP20-KB917283-X86.msp /a C:\xpcd\$OEM$\$1\applications\dotnetfx2\netfx.msi
msiexec /p C:\Temp\dotnetfx2\NDP20-KB922770-X86.msp /a C:\xpcd\$OEM$\$1\applications\dotnetfx2\netfx.msi
msiexec /p C:\Temp\dotnetfx2\NDP20-KB928365-v2-X86.msp /a C:\xpcd\$OEM$\$1\applications\dotnetfx2\netfx.msi
echo.
Le processus est identique à celui du .NET Framework 1.1.
Note : le module de prise en charge linguistique est extrait dans un dossier séparé pour éviter les conflits avec les fichiers d'installation du .NET Framework 2.0.
Une fois les deux batchs exécutés, vous pouvez vider le dossier temporaire.
3. Installation silencieuse :
.NET Framework 2.0 ne peut pas être exécuté à la phase T12 ou T13 (12 ou 13 minutes restantes) de l'installation car il afficherait une erreur du type : "Error 25007.Error occurred while initializing fusion. Setup could not load fusion with LoadLibraryShim(). Error: The handle is invalid.", même s'il existe une méthode pour y remédier
ici (en anglais). Pour ne pas nous compliquer la tâche, nous allons donc lancer l'installation au premier démarrage de Windows. Ceci peut être fait avec GuiRunOnce ou RunOnceEx.
Dans l'exemple, nous utiliserons le fichier applications.bat, mais il sera lancé avec GuiRunOnce et pas cmdlines.txt. Il sera placé dans "...\$OEM$\$1\" (insérez la ligne "cmd /c del %systemdrive%\applications.bat" à la fin du batch pour le supprimer après installation). La commande de lancement à insérer dans winnt.sif sera donc :
[GuiRunOnce]
Command0=%systemdrive%\applications.bat
Les lignes à ajouter à votre fichier applications.bat sont les suivantes :
echo Installation de Microsoft .NET Framework 1.1 SP1 ...
start /wait msiexec /i %systemdrive%\applications\dotnetfx\netfx.msi
start /wait msiexec /i %systemdrive%\applications\dotnetfx\langpack.msi /qb
echo.
echo Installation de Microsoft .NET Framework 2.0 ...
start /wait msiexec /i %systemdrive%\applications\dotnetfx2\netfx.msi ADDEPLOY=1 REBOOT=REALLYSUPRESS /qb
start /wait msiexec /i %systemdrive%\applications\dotnetfx2\langpack.msi ADDEPLOY=1 /qb
echo.
Rappel : /qb affiche une barre de progression de l'installation, si vous ne souhaitez rien afficher du tout utilisez /qn.
4. Pour gagner de la place :
Pour gagner de la place sur le CD, il est possible (mais facultatif) de compresser les fichiers d'installation grâce à WinRAR.
Déplacez les dossiers dotnetfx et dotnetfx2 depuis "...\$OEM$\$1\applications\" vers un dossier temporaire (C:\Temp\). Créez un fichier setup.bat dans ce même dossier :
@echo off
echo Installation de Microsoft .NET Framework 1.1 SP1 ...
start /wait msiexec /i dotnetfx\netfx.msi
start /wait msiexec /i dotnetfx\langpack.msi /qb
echo.
echo Installation de Microsoft .NET Framework 2.0 ...
start /wait msiexec /i dotnetfx2\netfx.msi ADDEPLOY=1 REBOOT=REALLYSUPRESS /qb
start /wait msiexec /i dotnetfx2\langpack.msi ADDEPLOY=1 /qb
echo.
Sélectionnez les deux dossiers et le batch.

Faites un clic droit et sélectionnez "Ajouter à l'archive...".

Choisissez dotnetfx comme nom d'archive, sélectionnez la meilleure méthode de compression et cochez la case "Créer une archive SFX".
Dans l'onglet "Commentaire", insérez les lignes suivantes :
Setup="setup.bat"
TempMode
Silent=1
Overwrite=1
Setup="setup.bat" va exécuter le batch setup.bat après décompression de manière à installer .NET Framework 1.1 et 2.0.
TempMode indique que les fichiers seront extraits dans un dossier temporaire.
Silent=1 masque la fenêtre de WinRAR pendant la décompression (facultatif).
Overwrite=1 écrase les fichiers déjà présents sans demander de confirmation.

Cliquez sur OK. Les fichiers sont compressés...
L'exécution du fichier dotnetfx.exe installera .NET Framework 1.1 et 2.0 de manière silencieuse. Il vous suffira donc de le placer dans "...\$OEM$\$1\applications\" et d'ajouter la ligne suivante à applications.bat (qui doit être lancé au premier démarrage de Windows rappelons le) :
echo Installation de Microsoft .NET Framework 1.1 SP1 et 2.0 ...
start /wait %systemdrive%\applications\dotnetfx.exe
echo.
Bien entendu, ce n'est pas la seule méthode de compression possible, c'est également faisable avec 7zip par exemple.