Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве показано, как использовать winapp CLI с приложением Rust для отладки с помощью удостоверения пакета и упаковки приложения в виде MSIX.
Идентификатор пакета — это основная концепция модели приложений Windows. Это позволяет вашему приложению получить доступ к определенным Windows API (например, уведомления, безопасность, API ИИ и т. д.), обеспечивать чистые процессы установки и удаления, и многое другое.
Необходимые условия
Rust Toolchain: Установите Rust с помощью rustup или winget:
winget install Rustlang.Rustup --source wingetwinapp CLI: установите
winappсредство с помощью winget:winget install microsoft.winappcli --source winget
1. Создание нового приложения Rust
cargo new rust-app
cd rust-app
Запустите его, чтобы убедиться, что все работает:
cargo run
2. Обновление кода для проверки удостоверения
Добавьте зависимость 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. Запуск без идентификации
cargo run
Должно появиться сообщение "Не упаковано".
4. Инициализируйте проект с помощью winapp CLI
winapp init
Когда появится запрос:
- Имя пакета: нажмите Enter, чтобы принять значение по умолчанию (rust-app)
- Имя издателя: нажмите клавишу Enter, чтобы принять значение по умолчанию или введите своё имя.
- Версия: нажмите клавишу ВВОД, чтобы принять 1.0.0.0
- Точка входа: нажмите клавишу ВВОД, чтобы принять значение по умолчанию (rust-app.exe)
- Настройка SDK: Выберите "Не настраивать SDK"
При этом создаются папки appxmanifest.xml и Assets для удостоверения приложения.
5. Отладка с идентификацией
Создайте исполняемый файл:
cargo buildПрименить идентификатор отладки:
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 для вас, не нужно подписывать перед отправкой.
- Вам могут потребоваться отдельные пакеты MSIX для каждой поддерживаемой архитектуры (x64, Arm64).
Связанные темы
Windows developer