- build_windows_oneclick.bat / build_windows_installer_oneclick.bat : wrappers - scripts/build_windows_oneclick.ps1 / build_windows_installer_only.ps1 / install_inno_setup_build_dep.ps1 - build_signing.example.ps1 : exemple protocole signing (sans secret) - docs/build-windows-oneclick.md : documentation du build Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4.4 KiB
Build Windows One-Click
Le packaging Windows standard du projet repose sur :
build_windows_oneclick.batbuild_windows_installer_oneclick.batscripts/build_windows_oneclick.ps1anonymisation_onefile.specinstaller/Anonymisation.iss
Usage
Sur la machine Windows de build :
- ouvrir le dossier du projet
- double-cliquer sur
build_windows_oneclick.bat
Le script :
- crée un venv de build local
.venv_build_win - installe les dépendances nécessaires au packaging
- génère
build_info.py - lance
PyInstalleravecanonymisation_onefile.spec - vérifie la présence de l'exécutable final
- prépare un dossier de livraison et une archive ZIP
- crée
release\Anonymisation-Setup.exesi Inno Setup 6 est installé
Sorties attendues
- exécutable :
dist\Anonymisation.exe - dossier de livraison :
release\Anonymisation-Windows\ - archive :
release\Anonymisation-Windows.zip - installateur :
release\Anonymisation-Setup.exe - hash :
release\Anonymisation.exe.sha256.txt
Installateur Windows
L'installateur est généré avec Inno Setup 6. Il fournit :
- choix du dossier d'installation
- installation utilisateur par défaut sans droits administrateur
- raccourci menu Démarrer
- option d'icône sur le bureau
- désinstallation Windows standard
Si Inno Setup n'est pas présent sur la machine de build, le script conserve le build EXE/ZIP et affiche un avertissement. Installer Inno Setup 6 depuis le site officiel puis relancer le build.
Installation automatisée de la dépendance de build Inno Setup :
powershell -ExecutionPolicy Bypass -File .\scripts\install_inno_setup_build_dep.ps1
Recompiler uniquement l'installateur à partir de release\Anonymisation-Windows\Anonymisation.exe :
powershell -ExecutionPolicy Bypass -File .\scripts\build_windows_installer_only.ps1
Pour ne générer que l'exécutable et le ZIP :
powershell -ExecutionPolicy Bypass -File .\scripts\build_windows_oneclick.ps1 -SkipInstaller
Important
- les utilisateurs finaux n'ont pas besoin d'installer Python
- le build doit être lancé depuis Windows
- le modèle ONNX embarqué requis doit exister localement dans :
models\camembert-bio-deid\onnx\model.onnx
Blocage Windows / SmartScreen
Un exécutable PyInstaller non signé peut déclencher Microsoft Defender SmartScreen, surtout s'il est téléchargé depuis Internet ou envoyé par e-mail. La signature réduit fortement le risque et évite l'éditeur inconnu, mais elle ne garantit pas toujours l'absence totale d'avertissement SmartScreen pour une toute nouvelle version : Windows tient aussi compte de la réputation du fichier et de son hash.
Pour une diffusion à des utilisateurs novices, la voie recommandée est :
- signer
Anonymisation.exeavec un certificat Authenticode - horodater la signature
- diffuser par partage réseau interne, Intune, GPO ou portail établissement
- conserver le hash
release\Anonymisation.exe.sha256.txt - éviter de demander aux utilisateurs de cliquer sur
Exécuter quand même
Le script prend en charge la signature si un certificat est disponible.
Signature automatique avec configuration locale
Sur la machine Windows de build :
- copier
build_signing.example.ps1enbuild_signing.local.ps1 - renseigner l'empreinte du certificat ou le chemin du PFX
- double-cliquer comme d'habitude sur
build_windows_oneclick.bat
build_signing.local.ps1 est ignoré par Git pour éviter de versionner des secrets.
Signature manuelle via PowerShell
Avec un certificat installé dans le magasin Windows :
powershell -ExecutionPolicy Bypass -File .\scripts\build_windows_oneclick.ps1 -Sign -CertThumbprint "EMPREINTE_CERTIFICAT"
Avec un fichier PFX :
powershell -ExecutionPolicy Bypass -File .\scripts\build_windows_oneclick.ps1 -Sign -PfxPath "C:\chemin\certificat.pfx" -PfxPassword "mot-de-passe"
Si aucun certificat n'est disponible, le build reste possible, mais Windows peut afficher un avertissement de réputation au premier lancement.
Références Microsoft :
- SmartScreen reputation : https://learn.microsoft.com/en-us/windows/apps/package-and-deploy/smartscreen-reputation
- SignTool : https://learn.microsoft.com/en-us/windows/win32/seccrypto/signtool
- Authenticode timestamping : https://learn.microsoft.com/en-us/windows/win32/seccrypto/time-stamping-authenticode-signatures