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.
Esta guía muestra cómo usar la CLI de winapp con una aplicación Tauri para depurar usando la identidad del paquete y empaquetar la aplicación como un 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
- Windows 11
-
Node.js -
winget install OpenJS.NodeJS --source winget -
CLI de winapp -
winget install microsoft.winappcli --source winget
1. Creación de una nueva aplicación tauri
npm create tauri-app@latest
Siga las indicaciones (nombre de Project: tauri-app, idioma de front-end: JavaScript, Package manager: npm).
Vaya al directorio project e instale las dependencias:
cd tauri-app
npm install
Ejecute la aplicación:
npm run tauri dev
2. Actualización del código para comprobar la identidad
Cambios en el back-end (Rust)
Agregue la windows dependencia. Abra src-tauri/Cargo.toml:
[target.'cfg(windows)'.dependencies]
windows = { version = "0.58", features = ["ApplicationModel"] }
Abra src-tauri/src/lib.rs y agregue el comando :
#[tauri::command]
fn get_package_family_name() -> String {
#[cfg(target_os = "windows")]
{
use windows::ApplicationModel::Package;
match Package::Current() {
Ok(package) => {
match package.Id() {
Ok(id) => match id.FamilyName() {
Ok(name) => name.to_string(),
Err(_) => "Error retrieving Family Name".to_string(),
},
Err(_) => "Error retrieving Package ID".to_string(),
}
}
Err(_) => "No package identity".to_string(),
}
}
#[cfg(not(target_os = "windows"))]
{
"Not running on Windows".to_string()
}
}
Registre el comando en la run función :
pub fn run() {
tauri::Builder::default()
.plugin(tauri_plugin_opener::init())
.invoke_handler(tauri::generate_handler![greet, get_package_family_name])
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
Cambios de front-end (JavaScript)
En src/index.html, agregue un párrafo para mostrar el resultado:
<p id="pfn-msg"></p>
En src/main.js, invoque el comando :
const { invoke } = window.__TAURI__.core;
async function checkPackageIdentity() {
const pfn = await invoke("get_package_family_name");
const pfnMsgEl = document.querySelector("#pfn-msg");
if (pfn !== "No package identity" && !pfn.startsWith("Error")) {
pfnMsgEl.textContent = `Package family name: ${pfn}`;
} else {
pfnMsgEl.textContent = `Not running with package identity`;
}
}
window.addEventListener("DOMContentLoaded", () => {
checkPackageIdentity();
});
Ejecute la aplicación para confirmar que muestra "No se está ejecutando con la identidad del paquete":
npm run tauri dev
3. Inicializar el proyecto con la CLI de winapp
winapp init
Cuando se le solicite,
- Nombre del paquete: presione Entrar para aceptar el valor predeterminado (tauri-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 (tauri-app.exe)
- Configurar SDKs: seleccione "No configurar SDKs"
4. Depurar con identidad
Agregue un script a package.json:
"scripts": {
"tauri:dev:withidentity": "cargo build --manifest-path src-tauri/Cargo.toml && winapp create-debug-identity src-tauri/target/debug/tauri-app.exe && .\\src-tauri\\target\\debug\\tauri-app.exe"
}
Ejecútelo:
npm run tauri:dev:withidentity
Debería ver que la aplicación muestra un nombre de familia del paquete.
5. Paquete con MSIX
Compilación para lanzamiento:
npm run tauri buildPrepare el directorio del paquete:
mkdir dist copy .\src-tauri\target\release\tauri-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 haciendo doble clic en el archivo generado
.msix. Inicie desde el menú Inicio.