Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En esta guía se muestra cómo utilizar la CLI de winapp con una aplicación de Rust para depurarla utilizando la identidad del paquete y empaquetar su aplicación como MSIX.
La identidad del paquete es un concepto básico en el modelo de Windows app. Permite a tu aplicación acceder a APIs específicas de Windows (como notificaciones, seguridad, APIs de IA, etc.), tener una experiencia de instalación y desinstalación limpia, etc.
Prerrequisitos
Cadena de herramientas de Rust: instale Rust mediante rustup o winget:
winget install Rustlang.Rustup --source wingetCLI de winapp: instale la
winappherramienta mediante winget:winget install microsoft.winappcli --source winget
1. Creación de una nueva aplicación de Rust
cargo new rust-app
cd rust-app
Ejecútelo para asegurarse de que todo funciona:
cargo run
2. Actualización del código para comprobar la identidad
Agregue la dependencia windows a su Cargo.toml:
cargo add windows --features ApplicationModel
Reemplace el contenido de 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. Ejecutar sin identidad
cargo run
Debería ver "No empaquetado".
4. Inicie el proyecto con la CLI de winapp
winapp init
Cuando se le solicite,
- Nombre del paquete: presione Entrar para aceptar el valor predeterminado (rust-app)
- Nombre del editor: Presione Intro para aceptar el valor predeterminado o escriba su nombre.
- Versión: presione Entrar para aceptar 1.0.0.0.
- Punto de entrada: presione Entrar para aceptar el valor predeterminado (rust-app.exe)
- Configurar SDKs: seleccione "No configurar SDKs"
Esto crea las carpetas appxmanifest.xml y Assets para la identidad de la aplicación.
5. Depurar con identidad
Compile el archivo ejecutable:
cargo buildAplicar la identidad de depuración:
winapp create-debug-identity .\target\debug\rust-app.exeEjecute el archivo ejecutable (no utilice
cargo runya que podría reconstruir):.\target\debug\rust-app.exe
Debería ver lo siguiente:
Package Family Name: rust-app_12345abcde
6. Empaquetar con MSIX
Compilación para lanzamiento:
cargo build --releasePrepare el directorio del paquete:
mkdir dist copy .\target\release\rust-app.exe .\dist\Genere un certificado de desarrollo:
winapp cert generate --if-exists skipEmpaquetar y firmar:
winapp pack .\dist --cert .\devcert.pfxInstale el certificado (ejecute como administrador):
winapp cert install .\devcert.pfxInstale y ejecute:
Add-AppxPackage .\rust-app.msix rust-app
Sugerencia
- Firme su MSIX con un certificado de firma de código de una entidad de certificación para la distribución de producción.
- La Microsoft Store firma el MSIX por ti, no es necesario firmar antes de la submisión.
- Es posible que necesite paquetes MSIX independientes para cada arquitectura que admita (x64, Arm64).