Freigeben über


Verwenden der winapp CLI mit Rust

In diesem Leitfaden wird veranschaulicht, wie Sie die winapp CLI mit einer Rust-Anwendung zum Debuggen mit Paketidentität verwenden und Ihre Anwendung als MSIX verpacken können.

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. Rust Toolchain: Installieren Sie Rust mit rustup oder mit Winget:

    winget install Rustlang.Rustup --source winget
    
  2. winapp CLI: Installieren Sie das winapp Tool über winget:

    winget install microsoft.winappcli --source winget
    

1. Erstellen einer neuen Rust-App

cargo new rust-app
cd rust-app

Führen Sie sie aus, um sicherzustellen, dass alles funktioniert:

cargo run

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

Fügen Sie die windows Abhängigkeit zu Ihrem Cargo.tomlhinzu:

cargo add windows --features ApplicationModel

Ersetzen Sie den Inhalt von src/main.rs:

use windows::ApplicationModel::Package;

fn main() {
    match Package::Current() {
        Ok(package) => {
            match package.Id() {
                Ok(id) => match id.FamilyName() {
                    Ok(name) => println!("Package Family Name: {}", name),
                    Err(e) => println!("Error getting family name: {}", e),
                },
                Err(e) => println!("Error getting package ID: {}", e),
            }
        }
        Err(_) => println!("Not packaged"),
    }
}

3. Ohne Identität ausführen

cargo run

Es sollte "Nicht verpackt" angezeigt werden.

4. Initialisiere das Projekt mit winapp CLI

winapp init

Wenn Sie dazu aufgefordert werden:

  • Paketname: Drücken Sie die EINGABETASTE, um den Standard (rust-app) zu akzeptieren.
  • 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 (rust-app.exe)
  • Setup-SDKs: Wählen Sie "SDKs nicht einrichten" aus.

Dadurch werden die Ordner appxmanifest.xml und Assets für Ihre App-Identität erstellt.

5. Debuggen mit Identität

  1. Erstellen Sie die ausführbare Datei:

    cargo build
    
  2. Debugidentität anwenden:

    winapp create-debug-identity .\target\debug\rust-app.exe
    
  3. Führen Sie die ausführbare Datei aus (nicht verwenden cargo run , da sie neu erstellt werden kann):

    .\target\debug\rust-app.exe
    

Sie sollten Folgendes sehen:

Package Family Name: rust-app_12345abcde

6. Paket mit MSIX

  1. Build für Release:

    cargo build --release
    
  2. Vorbereiten des Paketverzeichnisses:

    mkdir dist
    copy .\target\release\rust-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 und Ausführen:

    Add-AppxPackage .\rust-app.msix
    rust-app
    

Tipp

  • Signieren Sie Ihr MSIX mit einem Codesignaturzertifikat von einer Zertifizierungsstelle für die Produktionsverteilung.
  • Der Microsoft Store signiert das MSIX für Sie, sodass Sie es nicht vor der Übermittlung signieren müssen.
  • Möglicherweise benötigen Sie separate MSIX-Pakete für jede architektur, die Sie unterstützen (x64, Arm64).