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.
Questo articolo illustra un'architettura generale della distribuzione di SDK per app di Windows. I concetti seguenti si applicano principalmente alle app dipendenti dal framework SDK per app di Windows. Un'app dipendente dal framework dipende dal runtime SDK per app di Windows presente nel computer di destinazione.
Esistono due opzioni principali per distribuire un'app dipendente dal framework:
| Metodo di distribuzione dell'app | Requisiti |
|---|---|
| Confezionato | - Deve dichiarare la dipendenza dal pacchetto Framework nel manifesto del pacchetto. - L'API di distribuzione è necessaria per le app distribuite tramite Microsoft Store ed è raccomandata per quelle distribuite al di fuori dello Store per garantire l'installazione delle dipendenze di runtime. |
| Confezionato con ubicazione esterna o non confezionato | - Deve distribuire il runtime usando il programma di installazione o installando direttamente i pacchetti MSIX necessari. - Requisiti di runtime aggiuntivi: deve inizializzare access al runtime di SDK per app di Windows tramite l'API Bootstrap. |
Per altri dettagli su questi requisiti, vedere gli articoli seguenti:
- Guida alla distribuzione di SDK per app di Windows per le app in pacchetto dipendenti dal framework
- Guida alla distribuzione di SDK per app di Windows per le app dipendenti dal framework confezionate con posizione esterna o non confezionate
Termini chiave
Le sezioni seguenti definiscono i termini chiave per SDK per app di Windows distribuzione e dettagli aggiuntivi su alcuni di questi pacchetti.
| Termine | Definizione |
|---|---|
| SDK per app di Windows runtime | Pacchetti MSIX richiesti da un'app per usare il SDK per app di Windows. Questi pacchetti includono: Framework, Main, Singleton e DDLM. A seconda delle funzionalità usate e del metodo di distribuzione dell'app, è necessario un determinato set di questi pacchetti nel computer di destinazione. |
| Framework pacchetto | Contiene i file binari usati in fase di esecuzione dalle app (la maggior parte delle funzionalità di SDK per app di Windows). Il framework include un componente del programma di avvio automatico che consente alle app di installare automaticamente la versione più recente del SDK per app di Windows, che verrà aggiornata a intervalli regolari di rilascio. |
| pacchetto principale | Pacchetto che contiene attività in background per tenere traccia delle dipendenze dinamiche e abilita gli aggiornamenti automatici per il pacchetto Framework da Microsoft Store. |
| pacchetto Singleton | Contiene attività in background, servizi, estensioni dell'app e altri componenti non inclusi nel pacchetto framework, ad esempio Notifiche push. Si tratta in genere di un singolo processo a esecuzione prolungata gestito tra le app. |
| Pacchetto Manager del Ciclo di Vita della Dipendenza Dinamica (DDLM) | Impedisce al sistema operativo di eseguire aggiornamenti di manutenzione per i pacchetti MSIX mentre è in uso un pacchetto con posizione esterna o un'app non in pacchetto. |
| Bootstrapper | Un file binario locale dell'app utilizzato per individuare e caricare la versione più adatta di SDK per app di Windows secondo le necessità dell'applicazione, sia in abbinamento a pacchetti con risorse esterne, sia in applicazioni non impacchettate. |
| Fornitura | Processo di staging dei pacchetti a livello di sistema, in modo che qualsiasi utente sul computer possa registrarli e usarli senza dover ripetere lo staging per ogni computer. Il provisioning può essere eseguito come parte dell'immagine del sistema operativo o durante la distribuzione di app aziendali. |
| Installatore | Fa riferimento al programma di installazione di .exe che distribuisce i pacchetti Framework, Main, Singleton e DDLM. |
| MSIX | Tecnologia di installazione moderna che consente agli utenti di installare in modo sicuro un'app per utente, direttamente da Microsoft Store o da un sito Web. Nei PC aziendali o condivisi, le app possono essere installate per tutti gli utenti tramite PowerShell e MDM. |
Pacchetto framework
Quando crei un'app che usa il SDK per app di Windows, l'app fa riferimento a un set di componenti di runtime SDK per app di Windows distribuiti agli utenti finali tramite un pacchetto framework. Il pacchetto framework consente alle app di accedere ai componenti del SDK per app di Windows tramite un'unica fonte condivisa sul dispositivo dell'utente, invece di includerli nel pacchetto dell'app. Il pacchetto framework include anche le proprie risorse, ad esempio DLL e definizioni API (registrazioni COM e Windows Runtime). Queste risorse vengono eseguite nel contesto dell'app, quindi ereditano le funzionalità e i privilegi dell'app e non asseriscono alcuna funzionalità o privilegi propri. Per altre informazioni sulle dipendenze dei pacchetti framework, vedere pacchetti del framework MSIX e dipendenze dinamiche.
Il pacchetto framework SDK per app di Windows è un pacchetto MSIX distribuito agli utenti finali tramite Microsoft Store. Può essere aggiornato facilmente e rapidamente con le versioni di manutenzione, che possono includere correzioni di sicurezza e affidabilità. Tutte le app dipendenti dal framework che usano il SDK per app di Windows hanno una dipendenza da un'istanza condivisa del pacchetto framework, come illustrato nel diagramma seguente.
Quando viene gestita una nuova versione del pacchetto framework di SDK per app di Windows, tutte le app dipendenti dal framework vengono aggiornate alla nuova versione senza dover ridistribuire una copia. Windows si aggiorna alla versione più recente dei framework non appena vengono rilasciati, e le app fanno automaticamente riferimento alla versione più recente del pacchetto framework durante il riavvio. Le versioni precedenti del pacchetto framework non verranno rimosse dal sistema finché non vengono più in esecuzione o usate attivamente dalle app nel sistema.
Poiché la compatibilità delle app è importante per Microsoft e per le app che dipendono dal SDK per app di Windows, il pacchetto framework SDK per app di Windows segue Semantic Versioning 2.0.0 regole. Ciò significa che dopo il rilascio della versione 1.0 del SDK per app di Windows, il pacchetto framework SDK per app di Windows garantirà la compatibilità tra le modifiche secondarie e della versione della patch e le modifiche di rilievo si verificheranno solo tra gli aggiornamenti della versione principale.
Pacchetto Singleton
Il pacchetto singleton garantisce che un singolo processo a esecuzione prolungata possa gestire i servizi usati in più app, che possono essere in esecuzione in versioni diverse del SDK per app di Windows.
Il singleton SDK per app di Windows è necessario per abilitare le notifiche push per le app non in pacchetto e le applicazioni Win32 in pacchetto che usano versioni Windows inferiori alla 20H1, che non può essere supportato dalle classi UWP PushNotificationTrigger e ToastNotificationActionTrigger. Le funzionalità future SDK per app di Windows che non possono essere supportate dal pacchetto Framework verranno aggiunte al pacchetto Singleton.
Requisiti aggiuntivi per le app non in pacchetto
Programma di avvio automatico
Il programma di avvio automatico è una libreria che deve essere inclusa nel pacchetto con un percorso esterno o un'app non in pacchetto. Fornisce l'API del programma di avvio automatico (vedere Use the SDK per app di Windows runtime for apps packaged with external location or unpackaged), che consente alle app non in pacchetto di eseguire queste attività importanti:
- Inizializzare il Gestore del Ciclo di Vita delle Dipendenze Dinamiche (DDLM) per il pacchetto del framework SDK per app di Windows.
- Trovare e caricare il pacchetto framework di SDK per app di Windows nel grafo del pacchetto dell'applicazione.
Per eseguire queste attività, il pacchetto NuGet sfrutta gli auto-inizializzatori per configurare il bootstrapper per te. È sufficiente impostare <WindowsPackageType>None</WindowsPackageType> nel file project. Negli scenari avanzati, se vuoi controllare l'inizializzazione, puoi chiamare l'API del programma di avvio automatico direttamente nel codice di avvio dell'app (vedi Tutorial: Usa l'API del programma di avvio automatico in un'app in un pacchetto con percorso esterno o senza pacchetti che usa il SDK per app di Windows) in modo che possa inizializzare correttamente il sistema per l'app non in pacchetto. L'app deve usare l'API del programma di avvio automatico prima di poter usare SDK per app di Windows funzionalità come WinUI 3, Ciclo di vita dell'app, MRT Core e DWriteCore.
La libreria del programma di avvio automatico nella versione SDK per app di Windows 1.0 include:
- Microsoft.WindowsAppRuntime.Bootstrap.dll (C++ e C#)
- Microsoft.WindowsAppRuntime.Bootstrap.Net.dll (wrapper C#)
Gestore della Durata del Ciclo di Vita delle Dipendenze Dinamiche (DDLM)
Lo scopo del DDLM è impedire la manutenzione del pacchetto framework SDK per app di Windows mentre è in uso da un'app non in pacchetto. Contiene un server che deve essere inizializzato dal bootstrapper all'inizio dell'avvio di un'app per fornire tale funzionalità.
Per ogni versione e architettura del pacchetto framework di SDK per app di Windows è disponibile un DDLM. Ciò significa che su un x64 computer puoi avere sia una versione x86 che una versione x64 di DDLM per supportare le app di entrambe le architetture.
Requisiti aggiuntivi
- Per le app in pacchetto, la dipendenza del pacchetto framework VCLibs è un requisito. Per altre informazioni, vedere pacchetti del framework di runtime C++ per Desktop Bridge.
- Per le app non in pacchetto, Visual C++ Redistributable è un requisito. Per ulteriori informazioni, vedere Visual C++ Redistributable di Microsoft, ultimi download supportati.
- C#. Per il runtime di .NET, vedere Download .NET.
Pipeline di distribuzione MSIX
Quando si aggiunge un pacchetto MSIX a un computer, il motore di distribuzione elabora la richiesta in tre fasi:
| Stage | Ambito | Che succede |
|---|---|---|
| Indice | Per macchina | Analizza il manifesto del pacchetto e registra i metadati e il percorso di installazione previsto |
| Fase | Per macchina | Crea la directory del pacchetto, estrae il payload e applica gli elenchi di controllo di accesso |
| Registra | Per utente | Associa il pacchetto a fasi a un utente specifico: crea voci di menu Start, associazioni di tipi di file e dati di runtime |
La preparazione viene eseguita una sola volta per ogni computer; la registrazione avviene per utente. Questa separazione consente di rendere disponibile (o rimuovere) un pacchetto per un utente senza influire sugli altri.
Annotazioni
Il termine installazione è informale, non è un concetto formale nel motore di distribuzione MSIX. Le richieste di distribuzione usano l'API PackageManager per inviare operazioni (Aggiungi, Fase, Registra, Rimuovi e così via) alla coda di distribuzione. Per una spiegazione completa, vedere There is no Install – it's 'Stage' and 'Register' (Nessuna installazione: "Stage" e "Register" nel blog Inside MSIX).
Argomenti correlati
- Guida alla distribuzione di SDK per app di Windows per le app in pacchetto dipendenti dal framework
- Guida alla distribuzione di SDK per app di Windows per le app dipendenti dal framework confezionate con posizione esterna o non confezionate
- All'interno del blog di MSIX : approfondimenti sull'architettura MSIX, sull'identità dei pacchetti, sulle operazioni di distribuzione e altro ancora, dal team di progettazione MSIX