Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
L'interfaccia della riga di comando Windows App Development è attualmente disponibile in public preview. Le funzionalità e i comandi possono cambiare prima della versione finale.
Questa pagina documenta tutti i comandi disponibili per l'interfaccia della riga di comando di winapp.
Opzioni globali
Tutti i comandi supportano queste opzioni globali:
| Opzione | Descrizione |
|---|---|
--verbose, -v |
Abilitare l'output dettagliato per la registrazione dettagliata |
--quiet, -q |
Nascondere i messaggi di progresso |
--help, -h |
Visualizzare la Guida ai comandi |
Directory cache globale
WinApp crea una directory per memorizzare nella cache i file che possono essere condivisi tra più progetti. Per impostazione predefinita, tale valore è $UserProfile/.winapp.
Impostare la variabile di ambiente WINAPP_CLI_CACHE_DIRECTORY per usare un percorso diverso:
$env:WINAPP_CLI_CACHE_DIRECTORY = "d:\temp\.winapp"
Comandi di installazione
Init
Inizializzare una directory con Windows SDK, Windows App SDK e asset necessari per lo sviluppo di Windows moderno.
winapp init [base-directory] [options]
Argomenti:
| Argomentazione | Descrizione |
|---|---|
base-directory |
Directory di base/radice per l'app/area di lavoro (impostazione predefinita: directory corrente) |
Opzioni:
| Opzione | Descrizione |
|---|---|
--config-dir <path> |
Directory per leggere/archiviare la configurazione (impostazione predefinita: directory corrente) |
--setup-sdks |
Modalità di installazione dell'SDK: stable (impostazione predefinita), preview, experimentalo none |
--ignore-config, --no-config |
Non usare il file di configurazione per la gestione delle versioni |
--no-gitignore |
Non aggiornare il file .gitignore |
--use-defaults, --no-prompt |
Non richiedere e usare l'impostazione predefinita di tutte le impostazioni |
--config-only |
Gestire solo le operazioni dei file di configurazione, ignorare l'installazione del pacchetto |
Risultato:
- Crea il file di
winapp.yamlconfigurazione - Scarica i pacchetti di Windows SDK e Windows App SDK
- Genera intestazioni e file binari C++/WinRT
- Crea AppxManifest.xml
- Configura gli strumenti di compilazione e abilita la modalità sviluppatore
- Aggiorna .gitignore per escludere i file generati
Rilevamento automatico del progetto .NET:
Quando un file .csproj viene trovato nella directory di destinazione, init usa un flusso semplificato specifico di .NET.
- Convalida e aggiorna l'oggetto
TargetFrameworkin un TFM compatibile con Windows (ad esempio,net10.0-windows10.0.26100.0) - Aggiunge
Microsoft.WindowsAppSDKeMicrosoft.Windows.SDK.BuildToolscome voci NuGetPackageReferencedirettamente in.csproj - Genera
appxmanifest.xml, asset e un certificato di sviluppo -
Non crea o
winapp.yamlscarica proiezioni C++ (da usaredotnet restoreper i pacchetti NuGet)
Esempi:
# Initialize current directory
winapp init
# Initialize with experimental packages
winapp init --setup-sdks experimental
# Initialize specific directory without prompts
winapp init ./my-project --use-defaults
# Initialize a .NET project (auto-detected from .csproj)
cd my-dotnet-app
winapp init
Suggerimento
Se hai eseguito init con --setup-sdks none e successivamente hai bisogno degli SDK, esegui di nuovo winapp init --use-defaults --setup-sdks stable. In questo modo vengono mantenuti i file esistenti (manifesto e così via).
restaurare
Ripristinare i pacchetti e rigenerare i file in base alla configurazione esistente winapp.yaml .
winapp restore [options]
Opzioni:
| Opzione | Descrizione |
|---|---|
--config-dir <path> |
Directory contenente winapp.yaml (impostazione predefinita: directory corrente) |
Risultato:
- Legge la configurazione esistente
winapp.yaml - Download/aggiornamenti dei pacchetti SDK nelle versioni specificate
- Rigenera intestazioni e file binari C++/WinRT
Annotazioni
Per i progetti .NET inizializzati con winapp init, non esiste alcun winapp.yaml. Usare dotnet restore invece per ripristinare i pacchetti NuGet.
Esempi:
# Restore from winapp.yaml in current directory
winapp restore
aggiornare
Aggiornare i pacchetti alle versioni più recenti e aggiornare il file di configurazione.
winapp update [options]
Opzioni:
| Opzione | Descrizione |
|---|---|
--config-dir <path> |
Directory contenente winapp.yaml (impostazione predefinita: directory corrente) |
--setup-sdks |
Modalità di installazione dell'SDK: stable (impostazione predefinita), preview, experimentalo none |
Risultato:
- Legge la configurazione esistente
winapp.yaml - Aggiorna tutti i pacchetti alle versioni disponibili più recenti
- Aggiorna il
winapp.yamlfile con nuovi numeri di versione - Rigenera intestazioni e file binari C++/WinRT
Esempi:
# Update packages to latest versions
winapp update
# Update including experimental packages
winapp update --setup-sdks experimental
Creazione di pacchetti di comandi
pack
Creare pacchetti MSIX da directory dell'applicazione preparate. È necessario che appxmanifest.xml file sia presente nella directory di destinazione, nella directory corrente o passato con l'opzione --manifest .
winapp pack <input-folder> [options]
Argomenti:
| Argomentazione | Descrizione |
|---|---|
input-folder |
Directory contenente i file dell'applicazione da pacchettizzare |
Opzioni:
| Opzione | Descrizione |
|---|---|
--output <filename> |
Nome file MSIX di output (impostazione predefinita: <name>.msix) |
--name <name> |
Nome pacchetto (impostazione predefinita: dal manifesto) |
--manifest <path> |
Percorso del file AppxManifest.xml (impostazione predefinita: individuazione automatica) |
--cert <path> |
Percorso del certificato di firma (abilita la firma automatica) |
--cert-password <password> |
Password del certificato (impostazione predefinita: "password") |
--generate-cert |
Generare un nuovo certificato di sviluppo |
--install-cert |
Installare il certificato nel computer |
--publisher <name> |
Nome del Publisher per la generazione di certificati |
--self-contained |
Raggruppa il runtime di Windows App SDK |
--skip-pri |
Ignorare la generazione di file PRI |
--executable <path> |
Percorso dell'eseguibile relativo alla cartella di input. Usato per risolvere $targetnametoken$ i segnaposto nel manifesto. |
Risultato:
- Convalida ed elabora i file AppxManifest.xml
- Risolve i
$placeholder$token nel manifesto (vedere Segnaposto nel manifesto) - Assicura le dipendenze appropriate del framework
- Aggiorna manifesti side-by-side con registrazioni
- Gestisce la distribuzione Windows App SDK autonoma
- Firma il pacchetto se il certificato fornito
Esempi:
# Package directory with auto-detected manifest
winapp pack ./dist
# Package with custom output name and certificate
winapp pack ./dist --output MyApp.msix --cert ./cert.pfx
# Package with generated and installed certificate and self-contained runtime
winapp pack ./dist --generate-cert --install-cert --self-contained
# Package with explicit executable
winapp pack ./dist --executable MyApp.exe
create-debug-identity
Creare l'identità dell'app per il debug senza pacchetti MSIX completi usando la creazione di pacchetti di posizione/sparse esterni.
winapp create-debug-identity [entrypoint] [options]
Argomenti:
| Argomentazione | Descrizione |
|---|---|
entrypoint |
Percorso dell'eseguibile (.exe) o script che necessita di un'identità |
Opzioni:
| Opzione | Descrizione |
|---|---|
--manifest <path> |
Percorso di AppxManifest.xml (impostazione predefinita: ./appxmanifest.xml) |
--no-install |
Non installare il pacchetto dopo la creazione |
--keep-identity |
Mantenere l'identità del manifesto così com'è, senza aggiungere .debug al nome del pacchetto e all'ID dell'applicazione |
Risultato:
- Modifica il manifesto parallelo del file eseguibile
- Registra il pacchetto sperse per l'identificazione
- Abilita il debug delle API che richiedono identità
Esempi:
# Add identity to executable using local manifest
winapp create-debug-identity ./bin/MyApp.exe
# Add identity with custom manifest location
winapp create-debug-identity ./dist/app.exe --manifest ./custom-manifest.xml
Comandi del manifesto
manifesto generato
Generare AppxManifest.xml dai modelli.
winapp manifest generate [directory] [options]
Argomenti:
| Argomentazione | Descrizione |
|---|---|
directory |
Directory in cui generare il manifesto (impostazione predefinita: directory corrente) |
Opzioni:
| Opzione | Descrizione |
|---|---|
--package-name <name> |
Nome pacchetto (impostazione predefinita: nome cartella) |
--publisher-name <name> |
Publisher CN (impostazione predefinita: CN=<current user>) |
--version <version> |
Versione (impostazione predefinita: "1.0.0.0") |
--description <text> |
Descrizione (impostazione predefinita: "Applicazione personale") |
--entrypoint <path> |
File eseguibile o script del punto di ingresso |
--template <type> |
Tipo di modello: packaged (impostazione predefinita) o sparse |
--logo-path <path> |
Percorso del file di immagine del logo |
--if-exists <Error\|Overwrite\|Skip> |
Comportamento se il file esiste già (impostazione predefinita: Errore) |
Modelli:
-
packaged- Manifesto dell'app in pacchetto standard -
sparse- Manifesto dell'app con la creazione di pacchetti di posizione sparse/esterna
Segnaposto nel manifesto
I manifesti generati utilizzano token $placeholder$ (delimitati dal segno del dollaro) che vengono risolti automaticamente in fase di creazione del pacchetto.
| Segnaposto | Risolto a | Esempio |
|---|---|---|
$targetnametoken$ |
Nome eseguibile senza estensione |
Executable="$targetnametoken$.exe" diventa Executable="MyApp.exe" |
$targetentrypoint$ |
Windows.FullTrustApplication |
Sempre risolto automaticamente |
Come vengono risolti i segnaposto:
-
winapp pack$targetnametoken$viene risolto utilizzando l'opzione--executableo rilevando automaticamente il singolo.exenella cartella di input. -
winapp create-debug-identityrisolve$targetnametoken$dall'argomento del punto di ingresso quando fornito. -
winapp manifest generate --executableestrae i metadati dal file eseguibile, ma mantiene$targetnametoken$.exenel manifesto per una risoluzione successiva.
Suggerimento
Mantenere $targetnametoken$ nel manifesto registrato evita i nomi eseguibili hard-coded e funziona con winapp pack e compilazioni di Visual Studio.
Esempi:
# Generate standard manifest interactively
winapp manifest generate
# Generate with all options specified
winapp manifest generate ./src --package-name MyApp --publisher-name "CN=My Company" --if-exists overwrite
aggiornamento asset del manifesto
Generare tutti gli asset di immagine MSIX necessari da un'unica immagine di origine.
winapp manifest update-assets <image-path> [options]
Argomenti:
| Argomentazione | Descrizione |
|---|---|
image-path |
Percorso del file di immagine di origine (PNG, JPG, GIF e così via) |
Opzioni:
| Opzione | Descrizione |
|---|---|
--manifest <path> |
Percorso del file AppxManifest.xml (impostazione predefinita: cerca la directory corrente) |
Accetta una singola immagine di origine e genera automaticamente tutti i 12 asset di immagine MSIX necessari alle dimensioni corrette. Le risorse vengono salvate nella Assets cartella relativa alla posizione del manifesto.
Esempi:
# Generate assets with auto-detected manifest
winapp manifest update-assets mylogo.png
# Specify manifest location explicitly
winapp manifest update-assets mylogo.png --manifest ./dist/appxmanifest.xml
Comandi per certificato e firma
Generazione di certificati
Generare certificati di sviluppo per la firma del pacchetto.
winapp cert generate [options]
Opzioni:
| Opzione | Descrizione |
|---|---|
--manifest <appxmanifest.xml> |
Estrarre informazioni di publisher da appxmanifest.xml |
--publisher <name> |
Nome editore per il certificato |
--output <path> |
Percorso del file del certificato di output |
--password <password> |
Password del certificato (impostazione predefinita: "password") |
--valid-days <days> |
Numero di giorni in cui il certificato è valido (impostazione predefinita: 365) |
--install |
Installare il certificato nell'archivio del computer locale dopo la generazione |
--if-exists <Error\|Overwrite\|Skip> |
Comportamento se il file di certificato esiste già (impostazione predefinita: Errore) |
Installazione del certificato
Installare il certificato nell'archivio certificati del computer.
winapp cert install <cert-path>
Argomenti:
| Argomentazione | Descrizione |
|---|---|
cert-path |
Percorso del file di certificato da installare |
Esempi:
# Generate certificate for specific publisher
winapp cert generate --publisher "CN=My Company" --output ./mycert.pfx
# Install certificate to machine
winapp cert install ./mycert.pfx
segno
Firmare pacchetti MSIX ed eseguibili con certificati.
winapp sign <file-path> [options]
Argomenti:
| Argomentazione | Descrizione |
|---|---|
file-path |
Percorso del pacchetto MSIX o del file eseguibile da firmare |
Opzioni:
| Opzione | Descrizione |
|---|---|
--cert <path> |
Percorso del certificato di firma |
--cert-password <password> |
Password del certificato (impostazione predefinita: "password") |
Esempi:
# Sign MSIX package
winapp sign MyApp.msix --cert ./mycert.pfx
# Sign executable
winapp sign ./bin/MyApp.exe --cert ./mycert.pfx --cert-password mypassword
Comandi di utilità
strumento
Accedi direttamente agli strumenti del Windows SDK. Usa gli strumenti disponibili in Microsoft.Windows.SDK.BuildTools.
winapp tool <tool-name> [tool-arguments]
Strumenti disponibili:
-
makeappx- Creare e modificare pacchetti di app -
signtool- Firmare i file e verificare le firme -
mt- Strumento manifesto per assembly affiancate - E altri strumenti di Windows SDK di Microsoft.Windows.SDK.BuildTools
Esempi:
# Use signtool to verify signature
winapp tool signtool verify /pa MyApp.msix
store
Eseguire un comando di Microsoft Store Developer CLI. Questo comando scarica l'interfaccia della riga di comando per sviluppatori di Microsoft Store se non è già stata scaricata. Per altre informazioni, vedere Interfaccia della riga di comando per sviluppatori di Microsoft Store.
winapp store [args...]
Argomenti:
| Argomentazione | Descrizione |
|---|---|
args... |
Argomenti da passare direttamente all'interfaccia a riga di msstore comando |
Esempi:
# List all apps in your Microsoft Partner Center account
winapp store app list
# Publish a package to the Microsoft Store
winapp store publish ./myapp.msix --appId <your-app-id>
get-winapp-path
Ottieni i percorsi dei componenti di Windows SDK installati.
winapp get-winapp-path [options]
Restituisce i percorsi della directory dell'area di lavoro .winapp, delle directory di installazione dei pacchetti e delle posizioni dei file di intestazione generati.
comandi per Node.js/Electron
Questi comandi sono disponibili solo nel pacchetto NPM.
node create-addon
Generare modelli di componente aggiuntivo C++ o C# nativi con Windows SDK e integrazione Windows App SDK.
npx winapp node create-addon [options]
Opzioni:
| Opzione | Descrizione |
|---|---|
--name <name> |
Nome del componente aggiuntivo (impostazione predefinita: "nativeWindowsAddon") |
--template |
Selezionare il tipo di componente aggiuntivo: cs o cpp (impostazione predefinita: cpp) |
--verbose |
Abilitare l'output dettagliato |
Risultato:
- Crea la directory del componente aggiuntivo con i file modello
- Genera i file binding.gyp e addon con esempi dello Windows SDK
- Installa le dipendenze npm necessarie
- Aggiunge script di compilazione a package.json
Esempi:
# Generate addon with default name
npx winapp node create-addon
# Generate custom named C# addon
npx winapp node create-addon --name myWindowsAddon --template cs
node add-electron-debug-identity
Aggiungere l'identità dell'app al processo di sviluppo di Electron usando sparse packaging. Richiede un appxmanifest.xml (crearne uno con winapp init o winapp manifest generate).
Importante
Si è verificato un problema noto relativo al packaging sparso di applicazioni Electron che causano l'arresto anomalo dell'app all'avvio o impediscono il rendering del contenuto web. Il problema è stato risolto in Windows ma non è ancora stato propagato a tutti i dispositivi. È possibile disabilitare il sandboxing nell'app Electron con il --no-sandbox flag come soluzione alternativa. Questo problema non influisce sulla creazione di pacchetti MSIX completi.
Per annullare l'identità di debug Electron, usare winapp node clear-electron-debug-identity.
npx winapp node add-electron-debug-identity [options]
Opzioni:
| Opzione | Descrizione |
|---|---|
--manifest <path> |
Percorso verso il file XML appxmanifest personalizzato (impostazione predefinita: appxmanifest.xml nella directory corrente) |
--no-install |
Non installare o modificare le dipendenze; configurare solo l'identità di debug di Electron |
--keep-identity |
Mantenere l'identità del manifesto così com'è, senza accodare .debug |
--verbose |
Abilitare l'output dettagliato |
Esempi:
# Add identity to Electron development process
npx winapp node add-electron-debug-identity
# Use a custom manifest file
npx winapp node add-electron-debug-identity --manifest ./custom/appxmanifest.xml
nodo clear-electron-debug-identity
Rimuovere l'identità del pacchetto dal processo di debug Electron ripristinando il electron.exe originale dal backup.
npx winapp node clear-electron-debug-identity [options]
Opzioni:
| Opzione | Descrizione |
|---|---|
--verbose |
Abilitare l'output dettagliato |
Esempi:
# Remove identity from Electron development process
npx winapp node clear-electron-debug-identity