Freigeben über


Verwenden der winapp CLI mit Tauri

In diesem Handbuch wird veranschaulicht, wie Sie die winapp CLI mit einer Tauri-Anwendung zum Debuggen mit Paketidentität verwenden und Ihre Anwendung als MSIX verpacken.

Die Paketidentität ist ein Kernkonzept im Windows app-Modell. Sie ermöglicht Ihrer Anwendung den Zugriff auf bestimmte Windows-APIs (z. B. Benachrichtigungen, Sicherheit, KI-APIs usw.), eine einfache Installation/Deinstallation und vieles mehr.

Voraussetzungen

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

1. Erstellen einer neuen Tauri-App

npm create tauri-app@latest

Folgen Sie den Eingabeaufforderungen (Project Name: tauri-app, Frontend-Sprache: JavaScript, Package manager: npm).

Navigieren Sie zu Ihrem Projektverzeichnis und installieren Sie Abhängigkeiten.

cd tauri-app
npm install

Führen Sie die App aus:

npm run tauri dev

2. Aktualisieren von Code zum Überprüfen der Identität

Backend-Änderungen (Rust)

Fügen Sie die windows Abhängigkeit hinzu. Öffnen:src-tauri/Cargo.toml

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

Öffnen Sie src-tauri/src/lib.rs und fügen Sie den Befehl hinzu:

#[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()
    }
}

Registrieren Sie den Befehl in der run Funktion:

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");
}

Frontend-Änderungen (JavaScript)

Fügen Sie in src/index.html einen Absatz hinzu, um das Ergebnis anzuzeigen.

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

Rufen Sie in src/main.js den Befehl auf:

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();
});

Führen Sie die App aus, um zu bestätigen, dass sie die Meldung "Läuft nicht mit Paketidentität" anzeigt.

npm run tauri dev

3. Initialisieren Sie das Projekt mit der winapp CLI

winapp init

Wenn Sie dazu aufgefordert werden:

  • Paketname: Drücken Sie die EINGABETASTE, um die Standardeinstellung zu akzeptieren (tauri-app)
  • Publisher Name: Drücken Sie die EINGABETASTE, um die Standardeinstellung zu akzeptieren oder Ihren Namen einzugeben.
  • Version: Drücken Sie die EINGABETASTE, um 1.0.0.0 zu akzeptieren.
  • Einstiegspunkt: Drücken Sie die EINGABETASTE, um die Standardeinstellung zu übernehmen (tauri-app.exe)
  • Setup-SDKs: Wählen Sie "SDKs nicht einrichten" aus.

4. Debuggen mit Identität

Hinzufügen eines Skripts zu 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"
}

Ausführen:

npm run tauri:dev:withidentity

Die App sollte einen Paketfamiliennamen anzeigen.

5. Paket mit MSIX

  1. Build für Release:

    npm run tauri build
    
  2. Vorbereiten des Paketverzeichnisses:

    mkdir dist
    copy .\src-tauri\target\release\tauri-app.exe .\dist\
    
  3. Generieren eines Entwicklungszertifikats:

    winapp cert generate --if-exists skip
    
  4. Packen und Signieren:

    winapp pack .\dist --cert .\devcert.pfx
    
  5. Installieren Sie das Zertifikat (als Administrator ausführen):

    winapp cert install .\devcert.pfx
    
  6. Installieren Sie , indem Sie auf die generierte .msix Datei doppelklicken. Starten Sie über das Startmenü.