이 가이드에서는 Rust 애플리케이션에서 winapp CLI를 사용하여 패키지 ID로 디버그하고 애플리케이션을 MSIX로 패키지하는 방법을 보여 줍니다.
패키지 ID는 Windows app 모델의 핵심 개념입니다. 이를 통해 애플리케이션은 알림, 보안, AI API 등과 같은 특정 Windows 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를 확인하도록 코드 업데이트
Cargo.toml에 다음의 windows 의존성을 추가합니다.
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.xmlAssets .
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