Partager via


Utilisation de winapp CLI avec Tauri

Ce guide montre comment utiliser l’interface CLI winapp avec une application Tauri pour déboguer avec l’identité de package et empaqueter votre application en tant que MSIX.

L’identité de package est un concept de base dans le modèle Windows app. Il permet à votre application d'accéder à des API Windows spécifiques (telles que les notifications, les API de sécurité, les API IA, etc.), d'avoir une expérience d'installation/désinstallation optimisée, et bien plus encore.

Prerequisites

  1. Windows 11
  2. Node.js - winget install OpenJS.NodeJS --source winget
  3. winapp CLI - winget install microsoft.winappcli --source winget

1. Créer une application Tauri

npm create tauri-app@latest

Suivez les invites (nom du projet : tauri-app, langage front-end : JavaScript, gestionnaire de paquets : npm).

Accédez à votre répertoire project et installez les dépendances :

cd tauri-app
npm install

Exécutez l’application :

npm run tauri dev

2. Mettre à jour le code pour vérifier l’identité

Modifications du back-end (Rust)

Ajoutez la windows dépendance. Ouvrir src-tauri/Cargo.toml:

[target.'cfg(windows)'.dependencies]
windows = { version = "0.58", features = ["ApplicationModel"] }

Ouvrez src-tauri/src/lib.rs et ajoutez la commande :

#[tauri::command]
fn get_package_family_name() -> String {
    #[cfg(target_os = "windows")]
    {
        use windows::ApplicationModel::Package;
        match Package::Current() {
            Ok(package) => {
                match package.Id() {
                    Ok(id) => match id.FamilyName() {
                        Ok(name) => name.to_string(),
                        Err(_) => "Error retrieving Family Name".to_string(),
                    },
                    Err(_) => "Error retrieving Package ID".to_string(),
                }
            }
            Err(_) => "No package identity".to_string(),
        }
    }
    #[cfg(not(target_os = "windows"))]
    {
        "Not running on Windows".to_string()
    }
}

Inscrivez la commande dans la run fonction :

pub fn run() {
    tauri::Builder::default()
        .plugin(tauri_plugin_opener::init())
        .invoke_handler(tauri::generate_handler![greet, get_package_family_name])
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

Modifications du frontend (JavaScript)

Dans src/index.html, ajoutez un paragraphe pour afficher le résultat :

<p id="pfn-msg"></p>

Dans src/main.js, appelez la commande :

const { invoke } = window.__TAURI__.core;

async function checkPackageIdentity() {
  const pfn = await invoke("get_package_family_name");
  const pfnMsgEl = document.querySelector("#pfn-msg");

  if (pfn !== "No package identity" && !pfn.startsWith("Error")) {
    pfnMsgEl.textContent = `Package family name: ${pfn}`;
  } else {
    pfnMsgEl.textContent = `Not running with package identity`;
  }
}

window.addEventListener("DOMContentLoaded", () => {
  checkPackageIdentity();
});

Exécutez l’application pour confirmer qu’elle affiche « Ne s'exécute pas avec l'identité du package ».

npm run tauri dev

Initialisez le projet avec l’interface CLI winapp

winapp init

Lorsque vous y êtes invité :

  • Nom du package : appuyez sur Entrée pour accepter la valeur par défaut (tauri-app)
  • Publisher nom : appuyez sur Entrée pour accepter la valeur par défaut ou entrer votre nom
  • Version : appuyez sur Entrée pour accepter la version 1.0.0.0
  • Point d’entrée : appuyez sur Entrée pour accepter la valeur par défaut (tauri-app.exe)
  • Kits de développement logiciel (SDK) d’installation : Sélectionnez « Ne pas configurer les kits SDK »

4. Déboguer avec l’identité

Ajoutez un script à package.json:

"scripts": {
    "tauri:dev:withidentity": "cargo build --manifest-path src-tauri/Cargo.toml && winapp create-debug-identity src-tauri/target/debug/tauri-app.exe && .\\src-tauri\\target\\debug\\tauri-app.exe"
}

Exécutez-le :

npm run tauri:dev:withidentity

Vous devriez voir l'application afficher un Nom de famille du package.

5. Package avec MSIX

  1. Build pour la mise en production :

    npm run tauri build
    
  2. Préparer le répertoire du package :

    mkdir dist
    copy .\src-tauri\target\release\tauri-app.exe .\dist\
    
  3. Générez un certificat de développement :

    winapp cert generate --if-exists skip
    
  4. Empaqueter et signer :

    winapp pack .\dist --cert .\devcert.pfx
    
  5. Installez le certificat (exécuté en tant qu’administrateur) :

    winapp cert install .\devcert.pfx
    
  6. Installez en double-cliquant sur le fichier généré .msix . Lancez à partir du menu Démarrer.