Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här guiden visar hur du använder winapp CLI med ett Tauri-program för att felsöka med paketidentitet och paketera ditt program som en MSIX.
Paketidentitet är ett grundläggande begrepp i Windows app modellen. Det gör att ditt program kan access specifika Windows-API:er (t.ex. meddelanden, säkerhet, AI-API:er osv.), har en ren installation/avinstallation med mera.
Förutsättningar
- Windows 11
-
Node.js -
winget install OpenJS.NodeJS --source winget -
winapp CLI -
winget install microsoft.winappcli --source winget
1. Skapa en ny Tauri-app
npm create tauri-app@latest
Följ anvisningarna (Project namn: tauri-app, klientdelsspråk: JavaScript, Package manager: npm).
Gå till din project-katalog och installera beroenden:
cd tauri-app
npm install
Kör appen:
npm run tauri dev
2. Uppdatera koden för att kontrollera identiteten
Serverdelsändringar (Rust)
Lägg till beroendet windows. Öppna src-tauri/Cargo.toml:
[target.'cfg(windows)'.dependencies]
windows = { version = "0.58", features = ["ApplicationModel"] }
Öppna src-tauri/src/lib.rs och lägg till kommandot:
#[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()
}
}
Registrera kommandot i run funktionen:
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");
}
Klientdelsändringar (JavaScript)
I src/index.htmllägger du till ett stycke för att visa resultatet:
<p id="pfn-msg"></p>
I
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();
});
Kör appen för att bekräfta att den visar "Körs inte med paketidentitet":
npm run tauri dev
3. Initiera project med winapp CLI
winapp init
När du uppmanas att göra det:
- Paketnamn: Tryck på Retur för att acceptera standardvärdet (tauri-app)
- Utgivarens namn: Tryck på Enter för att acceptera standardvärdet eller ange ditt namn
- Version: Tryck på Retur för att acceptera 1.0.0.0
- Startpunkt: Tryck på Retur för att acceptera standardvärdet (tauri-app.exe)
- Installations-SDK:er: Välj "Konfigurera inte SDK:er"
4. Felsökning med identitet
Lägg till ett skript i 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"
}
Kör den:
npm run tauri:dev:withidentity
Du bör se att appen visar ett paketfamiljenamn.
5. Paket med MSIX
Skapa för lansering:
npm run tauri buildFörberedelse av en paketkatalog:
mkdir dist copy .\src-tauri\target\release\tauri-app.exe .\dist\Generera ett utvecklingscertifikat:
winapp cert generate --if-exists skipPaketera och signera:
winapp pack .\dist --cert .\devcert.pfxInstallera certifikatet (kör som administratör):
winapp cert install .\devcert.pfxInstallera genom att dubbelklicka på den genererade
.msixfilen. Starta från Start-menyn.
Relaterade ämnen
Windows developer