次の方法で共有


Rust での winapp CLI の使用

このガイドでは、Rust アプリケーションで winapp CLI を使用してパッケージ ID でデバッグし、アプリケーションを MSIX としてパッケージ化する方法について説明します。

パッケージ ID は、Windows app モデルの主要な概念です。 これにより、アプリケーションで特定の Windows API (通知、セキュリティ、AI API など) をaccessしたり、クリーン インストール/アンインストール エクスペリエンスを使用したりできます。

[前提条件]

  1. Rust ツールチェーン: rustup または winget を使用して Rust をインストールします。

    winget install Rustlang.Rustup --source winget
    
  2. winapp CLI: winget を使用して winapp ツールをインストールします。

    winget install microsoft.winappcli --source winget
    

1. 新しい Rust アプリを作成する

cargo new rust-app
cd rust-app

これを実行して、すべてが動作していることを確認します。

cargo run

2. ID を確認するようにコードを更新する

windowsCargo.tomlの依存関係を追加します。

cargo add windows --features ApplicationModel

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. ID なしで実行する

cargo run

"パッケージ化されていません" と表示されます。

4. winapp CLI を使用してprojectを初期化する

winapp init

プロンプトが表示されたら、次を実行します。

  • パッケージ名: Enter キーを押して既定値を受け入れる (rust-app)
  • Publisher名: Enter キーを押して既定値をそのまま使用するか、名前を入力します
  • バージョン: Enter キーを押して 1.0.0.0 を受け入れる
  • エントリ ポイント: Enter キーを押して既定値 (rust-app.exe) を受け入れます。
  • SDK のセットアップ: [SDK をセットアップしない] を選択する

これにより、アプリ ID の appxmanifest.xml フォルダーと Assets フォルダーが作成されます。

5. ID を使用したデバッグ

  1. 実行可能ファイルをビルドします

    cargo build
    
  2. デバッグ ID を適用します

    winapp create-debug-identity .\target\debug\rust-app.exe
    
  3. 実行可能ファイルを実行します (再構築する可能性があるため、 cargo run は使用しないでください)。

    .\target\debug\rust-app.exe
    

次のような結果が表示されます。

Package Family Name: rust-app_12345abcde

6. MSIX を使用したパッケージ化

  1. リリース用のビルド:

    cargo build --release
    
  2. パッケージ ディレクトリを準備します

    mkdir dist
    copy .\target\release\rust-app.exe .\dist\
    
  3. 開発証明書を生成します

    winapp cert generate --if-exists skip
    
  4. パッケージと署名:

    winapp pack .\dist --cert .\devcert.pfx
    
  5. 証明書をインストールします (管理者として実行)。

    winapp cert install .\devcert.pfx
    
  6. インストールして実行します。

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

ヒント

  • 実稼働配布用の証明機関のコード署名証明書を使用して MSIX に署名します。
  • Microsoft Store は MSIX に署名します。提出前に署名する必要はありません。
  • サポートするアーキテクチャ (x64、Arm64) ごとに個別の MSIX パッケージが必要になる場合があります。