Passer au contenu principal

Installateur Windows

Les applications Tauri pour Windows sont distribuées en tant que Microsoft Installers ( fichiers.msi). Le CLI Tauri regroupe le binaire de votre application et des ressources supplémentaires. Veuillez noter que les installateurs de .msi ne peuvent être créés que sous Windows car la compilation croisée ne fonctionne pas encore. Ce guide fournit des informations sur les options de personnalisation disponibles pour l'installateur.

Pour compiler et construire votre application Tauri en un seul exécutable, exécutez simplement la commande suivante :

npm run tauri build

Elle construira votre Frontend, compilera le binaire Rust et récupérera tous les binaires et ressources externes et produira enfin des paquets et des installateurs propres à la plateforme.

Construction pour 32 bits ou ARM

Le CLI Tauri compile votre exécutable en utilisant l'architecture de votre machine par défaut. En supposant que vous développez sur une machine 64 bits, le CLI produira des applications 64 bits.

Si vous avez besoin de prendre en charge les machines 32 bits , vous pouvez compiler votre application avec une cible Rust différente en utilisant l'option --target:

tauri build --target i686-pc-windows-msvc

Par défaut, Rust n'installe que des chaînes de compilation pour la cible de votre machine, donc vous devez d'abord installer la chaîne de compilation Windows 32 bits : rustup target add i686-pc-windows-msvc.

Si vous avez besoin de compiler pour ARM64 , vous devez d'abord installer des outils de compilation supplémentaires. Pour ce faire, ouvrez Visual Studio Installer, cliquez sur "Modifier" et dans l'onglet "Composants individuels" installez les outils de compilation "C++ ARM64". Au moment de la rédaction, le nom exact dans VS2022 est MSVC v143 - VS 2022 C++ ARM64 build tools (Latest).
Vous pouvez maintenant ajouter la cible de Rust avec rustup target add aarch64-pc-windows-msvc puis utiliser la méthode mentionnée ci-dessus pour compiler votre application :

tauri build --target aarc64-pc-windows-msvc

Prise en charge de Windows 7

Par défaut, l'installateur Microsoft ne fonctionne pas sous Windows 7 car il a besoin de télécharger le bootstrapper Webview2 si non installé (ce qui pourrait échouer si TLS 1.2 n'est pas activé dans le système d'exploitation). Tauri inclut une option pour intégrer le bootstrapper Webview2 (voir la section Intégration le programme d’amorçage Webview2 ci-dessous).

De plus, pour utiliser l'API Notification dans Windows 7, vous devez activer la fonctionnalité Cargo windows7-compat :

Cargo.toml
[dependencies]
tauri = { version = "1", features = [ "windows7-compat" ] }

FIPS Compliance

If your system requires the MSI bundle to be FIPS compliant you can set the TAURI_FIPS_COMPLIANT environment variable to true before running tauri build. In PowerShell you can set it for the current terminal session like this:

$env:TAURI_FIPS_COMPLIANT="true"

Options d'installation de Webview2

L'installateur de Windows télécharge par défaut le programme d’amorçage Webview2 et l'exécute si le runtime n'est pas installé. Alternativement, vous pouvez intégrer le programme d’amorçage, intégrer l'installateur hors ligne, ou utiliser une version d'exécution Webview2 fixe. Voir le tableau suivant pour une comparaison entre ces méthodes :

Méthode d'installationNécessite une connexion Internet ?Taille supplémentaire de l'installateurNotes
downloadBootstrapperOui0 MoOption par défaut
Une taille de l'installateur plus petite, mais n'est pas recommandé pour le déploiement de Windows 7.
embedBootstrapperOui~1,8 MoMeilleure prise en charge sur Windows 7.
offlineInstallerNon~127 MoIntégrer l'installateur Webview2. Recommandé pour les environnements hors ligne
fixedVersionNon~180 MoIntègre une version fixe de Webview2
skipNon0 Mo⚠️ Non recommandé
N'installe pas Webview2 dans le cadre de l'installateur Windows.
info

Sous Windows 10 (avril 2018 ou plus récent) et Windows 11, l'exécutable Webview2 est disponible sur système d'exploitation par défaut.

Téléchargé le programme d’amorçage

C'est le paramètre par défaut pour compiler l'installateur Windows. It downloads the bootstrapper and runs it. Requires an internet connection but results in a smaller installer size. Ce n'est pas recommandé si vous allez distribuer sur Windows 7.

tauri.config.json
{
"tauri": {
"bundle": {
"windows": {
"webviewInstallMode": {
"type": "downloadBootstrapper"
}
}
}
}
}

Intégré le programme d’amorçage

Pour intégrer le programme d’amorçage Webview2, définissez le webviewInstallMode à embedBootstrapper. Cela augmente la taille de l'installateur d'environ 1,8 Mo, mais augmente la compatibilité avec les systèmes Windows 7.

tauri.config.json
{
"tauri": {
"bundle": {
"windows": {
"webviewInstallMode": {
"type": "embedBootstrapper"
}
}
}
}
}

Installateur hors ligne

Pour intégrer le programme d’amorçage Webview2, définissez le webviewInstallMode à offlineInstaller. This increases the installer size by around 127MB, but allows your application to be installed even if an internet connection is not available.

tauri.config.json
{
"tauri": {
"bundle": {
"windows": {
"webviewInstallMode": {
"type": "offlineInstaller"
}
}
}
}
}

Version fixe

L'utilisation du runtime fourni par le système est excellente pour la sécurité car les correctifs de vulnérabilité sur le Web sont gérés par Windows. Si vous voulez contrôler la distribution Webview2 sur chacune de vos applications (soit pour gérer les correctifs de mise à jour soit pour distribuer des applications sur des environnements où une connexion Internet pourrait ne pas être disponible), Tauri peut regrouper les fichiers d'exécution pour vous.

:::prudence Distribuer une version d'exécution fixe Webview2 augmente l'installateur Windows d'environ 180 Mo. :::

  1. Téléchargez le runtime de la version corrigée de Webview2 à partir du site web Microsoft. Dans cet exemple, le nom du fichier téléchargé est Microsoft.WebView2.FixedVersionRuntime.98.0.1108.50.x64.cab
  2. Extraire le fichier dans le dossier de Tauri :
Expand .\Microsoft.WebView2.FixedVersionRuntime.98.0.1108.50.x64.cab -F:* ./src-tauri
  1. Configurer le chemin du runtime Webview2 dans tauri.conf.json:
tauri.config.json
{
"tauri": {
"bundle": {
"windows": {
"webviewInstallMode": {
"type": "fixedRuntime",
"path": "./Microsoft.WebView2.FixedVersionRuntime.98.0.1108.50.x64/"
}
}
}
}
}
  1. Exécutez tauri build pour produire l'installateur Windows avec le runtime fixe Webview2.

Ignorer l'installation

Vous pouvez supprimer la vérification de téléchargement Webview2 Runtime de l'installateur en définissant webviewInstallMode à skip. Votre application ne fonctionnera pas si l'utilisateur n'a pas le runtime installé.

danger

Votre application NE FONCTIONNERA PAS si l'utilisateur n'a pas le runtime installé et ne tente pas de l'installer.

tauri.config.json
{
"tauri": {
"bundle": {
"windows": {
"webviewInstallMode": {
"type": "skip"
}
}
}
}
}

Personnalisation de l'installateur

Le package Windows Installer est construit à l'aide de WiX Toolset v3. Actuellement, vous pouvez le modifier en utilisant un des fichiers WiX personnalisé (un fichier XML avec un .wxs extension de fichier) ou à travers des fragments WiX.

Remplacer le code d'installation par un fichier WiX personnalisé

Le XML Windows Installer défini par Tauri est configuré pour fonctionner pour la plupart des cas d'utilisation d'applications Web simples (vous pouvez le trouver ici). Il utilise handlebars pour que le CLI Tauri puisse marquer votre installateur selon votre définition de tauri.conf.json. Si vous avez besoin d'un installateur complètement différent, un fichier de template personnalisé peut être configuré dans tauri.bundle.windows.wix.template.

Étendre l'installateur avec des fragments WiX

Un fragment WiX est un conteneur où vous pouvez configurer presque tout ce qui est offert par WiX. Dans cet exemple, nous allons définir un fragment qui écrit deux entrées de registre :

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<!-- Ces entrées de Registre doivent être installées
à la machine de l’utilisateur -->
<DirectoryRef Id="TARGETDIR">
<!-- regroupe les entrées de Registre à installer -->
<!-- Notez l’identifiant unique que nous fournissons ici -->
<Component Id="MyFragmentRegistryEntries" Guid="*">
<!-- La clé de Registre sera dans
HKEY_CURRENT_USER\Software\MyCompany\MyApplicationName -->
<!-- Tauri utilise la deuxième partie de l'identifiant
du bundle comme le nom 'MyCompany'
(ex. `tauri-apps` in `com.tauri-apps.test`) -->
<RegistryKey
Root="HKCU"
Key="Software\MyCompany\MyApplicationName"
Action="createAndRemoveOnUninstall"
>
<!-- Les valeurs restes dans le Registre -->
<RegistryValue
Type="integer"
Name="SomeIntegerValue"
Value="1"
KeyPath="yes"
/>
<RegistryValue Type="string" Value="Default Value" />
</RegistryKey>
</Component>
</DirectoryRef>
</Fragment>
</Wix>

Enregistrez le fichier de fragment avec l'extension .wxs quelque part dans votre projet et référencez-le sur tauri.conf.json:

{
"tauri": {
"bundle": {
"windows": {
"wix": {
"fragmentPaths": ["./path/to/registry.wxs"],
"componentRefs": ["MyFragmentRegistryEntries"]
}
}
}
}
}

Notez que ComponentGroup, Component, FeatureGroup, Feature et Merge doivent être référencés sur l'objet wix de tauri.conf.json dans le componentGroupRefs, componentRefs, featureGroupRefs, featureRefs et mergeRefs respectivement à inclure dans l'installateur.

Internationalisation

L'installateur Windows est construit en utilisant la langue en-US par défaut. L'internationalisation (i18n) peut être configurée en utilisant la propriété tauri.bundle.windows.wix.language définissant les langues dans lesquelles Tauri devrait construire un installateur. Vous pouvez trouver les noms de langue à utiliser dans la colonne Language-Culture sur le site Web de Microsoft.

Compiler un installateur pour une seule langue

Pour créer un seul installateur ciblant une langue spécifique, définissez la valeur language avec une chaîne de caractères :

{
"tauri": {
"bundle": {
"windows": {
"wix": {
"language": "fr-FR"
}
}
}
}
}

Compiler un installateur pour chaque langue dans une liste

Pour compiler un installateur ciblant une liste de langues, utilisez un tableau. Un installateur spécifique pour chaque langue sera créé, avec la clé de langue comme suffixe :

{
"tauri": {
"bundle": {
"windows": {
"wix": {
"language": ["en-US", "pt-BR", "fr-FR"]
}
}
}
}
}

Configuration de l'installateur pour chaque langue

Un objet de configuration peut être défini pour chaque langue pour configurer les chaînes de localisation :

{
"tauri": {
"bundle": {
"windows": {
"wix": {
"language": {
"en-US": null,
"pt-BR": {
"localePath": "./wix/locales/pt-BR.wxl"
}
}
}
}
}
}
}

La propriété localePath définit le chemin vers un fichier de langue, un XML configurant la culture de langue :

<WixLocalization
Culture="en-US"
xmlns="http://schemas.microsoft.com/wix/2006/localization"
>
<String Id="LaunchApp"> Launch MyApplicationName </String>
<String Id="DowngradeErrorMessage">
A newer version of MyApplicationName is already installed.
</String>
<String Id="PathEnvVarFeature">
Add the install location of the MyApplicationName executable to
the PATH system environment variable. This allows the
MyApplicationName executable to be called from any location.
</String>
<String Id="InstallAppFeature">
Installs MyApplicationName.
</String>
</WixLocalization>
note

Le champ WixLocalization de l'élément Culture doit correspondre à la langue configurée.

Actuellement, Tauri fait référence aux chaînes locales suivantes : LaunchApp, DowngradeErrorMessage, PathEnvVarFeature et InstallAppFeature. Vous pouvez définir vos propres chaînes et les référencer sur votre modèle ou fragments personnalisés avec "!(loc.TheStringId)". Consultez la documentation de localisation WiX pour plus d'informations.