このガイドでは、Rust アプリケーションで winapp CLI を使用してパッケージ ID でデバッグし、アプリケーションを MSIX としてパッケージ化する方法について説明します。
パッケージ ID は、Windows app モデルの主要な概念です。 これにより、アプリケーションで特定の Windows API (通知、セキュリティ、AI API など) をaccessしたり、クリーン インストール/アンインストール エクスペリエンスを使用したりできます。
[前提条件]
Rust ツールチェーン: rustup または winget を使用して Rust をインストールします。
winget install Rustlang.Rustup --source wingetwinapp CLI: winget を使用して
winappツールをインストールします。winget install microsoft.winappcli --source winget
1. 新しい Rust アプリを作成する
cargo new rust-app
cd rust-app
これを実行して、すべてが動作していることを確認します。
cargo run
2. ID を確認するようにコードを更新する
windowsにCargo.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 を使用したデバッグ
実行可能ファイルをビルドします。
cargo buildデバッグ ID を適用します。
winapp create-debug-identity .\target\debug\rust-app.exe実行可能ファイルを実行します (再構築する可能性があるため、
cargo runは使用しないでください)。.\target\debug\rust-app.exe
次のような結果が表示されます。
Package Family Name: rust-app_12345abcde
6. MSIX を使用したパッケージ化
リリース用のビルド:
cargo build --releaseパッケージ ディレクトリを準備します。
mkdir dist copy .\target\release\rust-app.exe .\dist\開発証明書を生成します。
winapp cert generate --if-exists skipパッケージと署名:
winapp pack .\dist --cert .\devcert.pfx証明書をインストールします (管理者として実行)。
winapp cert install .\devcert.pfxインストールして実行します。
Add-AppxPackage .\rust-app.msix rust-app
ヒント
- 実稼働配布用の証明機関のコード署名証明書を使用して MSIX に署名します。
- Microsoft Store は MSIX に署名します。提出前に署名する必要はありません。
- サポートするアーキテクチャ (x64、Arm64) ごとに個別の MSIX パッケージが必要になる場合があります。
関連トピック
- winapp CLI リファレンス
- winapp CLI の概要
- WindowsでRustを始める方法
Windows developer