Použití rozhraní příkazového řádku winapp s Rustem

Tato příručka ukazuje, jak používat winapp CLI k ladění aplikace Rust s identitou balíčku a jak zabalit svou aplikaci jako MSIX.

Identita balíčku je základním konceptem modelu Windows app. Umožňuje aplikaci přistupovat k konkrétním rozhraním API systému Windows (jako jsou oznámení, zabezpečení, rozhraní API AI atd.), má čistý proces instalace a odinstalace a další.

Předpoklady

  1. Sada nástrojů Rust: Nainstalujte Rust pomocí rustupu nebo wingetu:

    winget install Rustlang.Rustup --source winget
    
  2. winapp CLI: Nainstalujte winapp nástroj přes winget:

    winget install microsoft.winappcli --source winget
    

1. Vytvoření nové aplikace Rust

cargo new rust-app
cd rust-app

Spusťte ho, abyste měli jistotu, že všechno funguje:

cargo run

2. Aktualizace kódu pro kontrolu identity

Přidejte závislost windows do svého Cargo.toml:

cargo add windows --features ApplicationModel

Nahraďte obsah 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. Spuštění bez identity

cargo run

Měla by se zobrazit zpráva "Nenabalené".

4. Inicializace project pomocí rozhraní příkazového řádku winapp

winapp init

Po zobrazení výzvy:

  • Název balíčku: Stisknutím klávesy Enter přijměte výchozí hodnotu (rust-app).
  • Publisher název: Stisknutím klávesy Enter přijměte výchozí hodnotu nebo zadejte své jméno.
  • Verze: Stisknutím klávesy Enter přijměte verzi 1.0.0.0.
  • Vstupní bod: Stisknutím klávesy Enter přijměte výchozí (rust-app.exe)
  • Instalační sady SDK: Vyberte "Nenastavovat sady SDK"

Tím se vytvoří složka appxmanifest.xml a identita Assets pro vaši aplikaci.

5. Ladění s identitou

  1. Sestavení spustitelného souboru:

    cargo build
    
  2. Použít identitu ladění:

    winapp create-debug-identity .\target\debug\rust-app.exe
    
  3. Spusťte spustitelný soubor (nepoužívejte cargo run pokud by to mohlo vyvolat opětovné sestavení):

    .\target\debug\rust-app.exe
    

Měli byste vidět:

Package Family Name: rust-app_12345abcde

6. Balíček s MSIX

  1. Sestavení pro vydání:

    cargo build --release
    
  2. Příprava adresáře balíčku:

    mkdir dist
    copy .\target\release\rust-app.exe .\dist\
    
  3. Vygenerování vývojového certifikátu:

    winapp cert generate --if-exists skip
    
  4. Balíček a podepsání:

    winapp pack .\dist --cert .\devcert.pfx
    
  5. Nainstalujte certifikát (spusťte ho jako správce):

    winapp cert install .\devcert.pfx
    
  6. Instalace a spuštění:

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

Návod

  • Podepište MSIX podpisovým certifikátem od certifikační autority pro produkční distribuci.
  • Microsoft Store za vás podepíše MSIX, před odesláním se nemusíte podepisovat.
  • Pro každou architekturu, kterou podporujete (x64, Arm64), možná budete potřebovat samostatné balíčky MSIX.