Delen via


Winapp CLI gebruiken met Rust

Deze handleiding laat zien hoe u de winapp CLI gebruikt met een Rust-toepassing om fouten op te sporen met pakketidentiteit en uw toepassing als msix te verpakken.

Pakketidentiteit is een kernconcept in het Windows app model. Hiermee kan uw toepassing specifieke Windows-API's (zoals meldingen, beveiliging, AI-API's, enzovoort) access, een schone installatie-/verwijderingservaring hebben, en meer.

Vereiste voorwaarden

  1. Rust Toolchain: Rust installeren met behulp van rustup of winget:

    winget install Rustlang.Rustup --source winget
    
  2. winapp CLI: Installeer het winapp hulpprogramma via winget:

    winget install microsoft.winappcli --source winget
    

1. Een nieuwe Rust-app maken

cargo new rust-app
cd rust-app

Voer deze uit om te controleren of alles werkt:

cargo run

2. Werk code bij om de identiteit te controleren

Voeg de windows afhankelijkheid toe aan uw Cargo.toml:

cargo add windows --features ApplicationModel

Vervang de inhoud van 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. Uitvoeren zonder identiteit

cargo run

U ziet nu 'Niet verpakt'.

4. Initialiseer project met winapp CLI

winapp init

Wanneer u hierom wordt gevraagd:

  • Pakketnaam: druk op Enter om de standaardwaarde te accepteren (rust-app)
  • Publisher naam: Druk op Enter om de standaardinstelling te accepteren of voer uw naam in
  • Versie: Druk op Enter om 1.0.0.0 te accepteren
  • Toegangspunt: Druk op Enter om de standaardwaarde (rust-app.exe) te accepteren
  • Sdk's instellen: Selecteer 'SDK's niet instellen'

Hiermee maakt u de mappen appxmanifest.xml en Assets voor uw app-identiteit aan.

Debuggen met identiteit

  1. Bouw het uitvoerbare bestand:

    cargo build
    
  2. Debug-identiteit toepassen

    winapp create-debug-identity .\target\debug\rust-app.exe
    
  3. Voer het uitvoerbare bestand uit (gebruik cargo run dit niet omdat het opnieuw kan worden opgebouwd):

    .\target\debug\rust-app.exe
    

U ziet het volgende:

Package Family Name: rust-app_12345abcde

6. Pakket met MSIX

  1. Build voor release:

    cargo build --release
    
  2. Pakketmap voorbereiden:

    mkdir dist
    copy .\target\release\rust-app.exe .\dist\
    
  3. Een ontwikkelingscertificaat genereren:

    winapp cert generate --if-exists skip
    
  4. Pakket en teken:

    winapp pack .\dist --cert .\devcert.pfx
    
  5. Installeer het certificaat (als beheerder uitvoeren):

    winapp cert install .\devcert.pfx
    
  6. Installeren en uitvoeren:

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

Aanbeveling

  • Onderteken uw MSIX met een certificaat voor ondertekening van programmacode van een certificeringsinstantie voor productiedistributie.
  • De Microsoft Store ondertekent de MSIX voor u. U hoeft de MSIX niet te ondertekenen voordat u deze inzendt.
  • Mogelijk hebt u afzonderlijke MSIX-pakketten nodig voor elke architectuur die u ondersteunt (x64, Arm64).