Rust ile winapp CLI kullanma

Bu kılavuzda paket kimliğiyle hata ayıklamak ve uygulamanızı MSIX olarak paketlemek için rust uygulamasıyla winapp CLI'nin nasıl kullanılacağı gösterilmektedir.

Paket kimliği, Windows app modelinde temel bir kavramdır. Uygulamanızın belirli Windows API'lerine (Bildirimler, Güvenlik, Yapay Zeka API'leri vb.) erişmesini sağlar, sorunsuz yükleme ve kaldırma deneyimi sunar ve daha fazlasını gerçekleştirir.

Önkoşullar

  1. Rust Toolchain: Rust'ı rustup veya winget kullanarak yükleyin:

    winget install Rustlang.Rustup --source winget
    
  2. winapp CLI: Aracı winget aracılığıyla yükleyin winapp :

    winget install microsoft.winappcli --source winget
    

1. Yeni bir Rust uygulaması oluşturma

cargo new rust-app
cd rust-app

Her şeyin çalıştığından emin olmak için çalıştırın:

cargo run

2. Kimliği denetlemek için kodu güncelleştirme

windows bağımlılığını öğesinin Cargo.tomliçine ekleyin:

cargo add windows --features ApplicationModel

öğesinin içeriğini değiştirin: 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. Kimlik olmadan çalıştırma

cargo run

"Paketlenmedi" ifadesini görmeniz gerekir.

4. winapp CLI ile project başlatma

winapp init

Sorulduğunda:

  • Paket adı: Varsayılanı kabul etmek için Enter tuşuna basın (rust-app)
  • Publisher name: Varsayılanı kabul etmek için Enter tuşuna basın veya adınızı girin
  • Sürüm: 1.0.0.0'ı kabul etmek için Enter'a basın
  • Giriş noktası: Varsayılanı kabul etmek için Enter tuşuna basın (rust-app.exe)
  • SDK'ları ayarlama: "SDK'ları ayarlama" seçeneğini belirlemeyin

Bu, uygulama kimliğiniz için appxmanifest.xml ve Assets klasörlerini oluşturur.

5. Kimlikle hata ayıklama

  1. Yürütülebilir dosyayı oluşturun:

    cargo build
    
  2. Hata ayıklama kimliğini uygula:

    winapp create-debug-identity .\target\debug\rust-app.exe
    
  3. Yürütülebilir dosyayı çalıştırın (yeniden derleyebileceğinden kullanmayın cargo run ):

    .\target\debug\rust-app.exe
    

Şunu görmeniz gerekir:

Package Family Name: rust-app_12345abcde

6. MSIX ile paketle

  1. Yayın için derleme:

    cargo build --release
    
  2. Paket dizinini hazırlama:

    mkdir dist
    copy .\target\release\rust-app.exe .\dist\
    
  3. Geliştirme sertifikası oluşturma:

    winapp cert generate --if-exists skip
    
  4. Paketle ve imzala:

    winapp pack .\dist --cert .\devcert.pfx
    
  5. Sertifikayı yükleyin (yönetici olarak çalıştırın):

    winapp cert install .\devcert.pfx
    
  6. Yükleme ve çalıştırma:

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

Tavsiye

  • MSIX'inizi üretim dağıtımı için sertifika yetkilisinden bir kod imzalama sertifikasıyla imzalayın.
  • Microsoft Store MSIX'i sizin için imzalar, göndermeden önce imzalamanız gerekmez.
  • Desteklediğiniz her mimari (x64, Arm64) için ayrı MSIX paketlerine ihtiyacınız olabilir.