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 come configurare un'app non installata usando MSIX (ovvero viene inserita in un pacchetto con percorso esterno o senza pacchetti) per usare l'API del programma di avvio automatico in modo che carichi in modo esplicito il runtime di Windows App SDK e chiami le API Windows App SDK. App non installate tramite MSIX includono app confezionate con origini esterne e app non confezionate.
Importante
A partire dalla Windows App SDK 1.0, l'approccio predefinito per il caricamento del Windows App SDK da un'applicazione impacchettata con posizione esterna o non impacchettata consiste nell'usare l'inizializzazione automatica tramite la proprietà del progetto <WindowsPackageType> (nonché apportare ulteriori modifiche alla configurazione). Per i passaggi necessari per l'inizializzazione automatica nel contesto del project WinUI 3, vedi
Se sono necessarie esigenze avanzate, ad esempio la gestione degli errori personalizzata o il caricamento di una versione specifica del Windows App SDK, è possibile chiamare in modo esplicito l'API del programma di avvio automatico. E questo è l'approccio illustrato in questo argomento. Per ulteriori informazioni, vedi anche Utilizzare il runtime di Windows App SDK per le app confezionate con percorso esterno o non confezionate.
Questo argomento illustra in modo esplicito la chiamata dell'API del bootstrapper da un progetto di app console di base, ma i passaggi si applicano a qualsiasi app desktop non impacchettata che utilizza il Windows App SDK.
Prima di completare questa esercitazione, è consigliabile esaminare l'architettura Runtime per altre informazioni sull'Framework dipendenza del pacchetto richiesta dall'app quando usa il Windows App SDK e sui componenti aggiuntivi necessari per lavorare in un pacchetto con un percorso esterno o un'app non in pacchetto.
Prerequisiti
- Installare gli strumenti per il Windows App SDK.
- Assicurarsi che tutte le dipendenze per le applicazioni impacchettate con un percorso esterno e le applicazioni non impacchettate siano installate (vedere guida alla distribuzione del Windows App SDK per le applicazioni dipendenti dal framework impacchettate con percorso esterno o non impacchettate). Un modo semplice per farlo è eseguire il programma di installazione del runtime di Windows App SDK.
Istruzioni
È possibile seguire questa esercitazione usando un project C# o C++.
Nota
Le dipendenze dinamiche e le API del programma di avvio automatico hanno esito negativo quando vengono chiamate da un processo con privilegi elevati. Di conseguenza, Visual Studio non deve essere avviato con privilegi elevati. Per ulteriori dettagli, vedere Dipendenze Dinamiche non supporta l'elevazione #567.
Seguire queste istruzioni per configurare un progetto WinUI C# impacchettato con pacchetto esterno o non impacchettato.
In Visual Studio creare una nuova app C# Console App project. Denominare project DynamicDependenciesTest. Dopo aver creato il project, è necessario avere un'app console C# "Hello, World!".
Configurare quindi il project.
- In Solution Explorer fare clic con il pulsante destro del mouse sul project e scegliere Edit Project File.
- Sostituire il valore dell'elemento TargetFramework con un Moniker di destinazione Framework. Ad esempio, usare quanto segue se l'app è destinata Windows 10 versione 2004.
<TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>- Salvare e chiudere il file project.
Modificare la piattaforma della tua soluzione in x64. Il valore predefinito in un .NET project è AnyCPU, ma WinUI non supporta tale piattaforma.
- Selezionare Build>Configuration Manager.
- Selezionare l'elenco a discesa sotto Piattaforma soluzione attiva e fare clic su Nuovo per aprire la finestra di dialogo Nuova piattaforma soluzione.
- Nella casella a discesa, alla voce Digita o seleziona la nuova piattaforma, selezionare x64.
- Scegliere OK per chiudere la finestra di dialogo Piattaforma di nuova soluzione.
- In Configuration Manager fare clic su Close.
Installare il pacchetto NuGet Windows App SDK nel project.
- In Solution Explorer fare clic con il pulsante destro del mouse sul nodo Dependencies e scegliere Gestisci pacchetti NuGet.
- Nella finestra NuGet Package Manager selezionare la scheda Browse e installare il pacchetto Microsoft.WindowsAppSDK.
A questo punto è possibile usare l'API del programma di avvio automatico (vedere Usare il runtime di Windows App SDK per le app in pacchetto con percorso esterno o senza pacchetti) per assumere in modo dinamico una dipendenza dal pacchetto del framework Windows App SDK. In questo modo puoi usare le API Windows App SDK nella tua app.
Aprire il file di codice Program.cs e sostituire il codice predefinito con il codice seguente per richiamare il metodo Bootstrap.Initialize per inizializzare il programma di avvio automatico. Questo codice definisce quale versione del Windows App SDK da cui l'app dipende al momento dell'inizializzazione del programma di avvio automatico.
Importante
Sarà necessario modificare il codice seguente in base alla configurazione specifica. Vedere le descrizioni dei parametri del metodo Bootstrap.Initialize in modo da poter specificare una delle versioni del Windows App SDK installate.
using System; using Microsoft.Windows.ApplicationModel.DynamicDependency; namespace DynamicDependenciesTest { class Program { static void Main(string[] args) { Bootstrap.Initialize(0x00010002); Console.WriteLine("Hello, World!"); // Release the DDLM and clean up. Bootstrap.Shutdown(); } } }Alla radice, l'API del programma di avvio automatico è un'API C/C++ nativa che consente di usare le API Windows App SDK nell'app. In un'app .NET che usa il Windows App SDK 1.0 o versione successiva, è possibile usare il wrapper .NET per l'API del programma di avvio automatico. Questo wrapper offre un modo più semplice per chiamare l'API del programma di avvio automatico in un'app .NET rispetto alla chiamata diretta delle funzioni C/C++ native. Nell'esempio di codice precedente vengono chiamati i metodi Initialize e Shutdown della classe Bootstrap nella classe .NET wrapper per l'API del programma di avvio automatico.
Per dimostrare che i componenti di runtime Windows App SDK sono stati caricati correttamente, aggiungere codice che usa la classe ResourceManager nella Windows App SDK per caricare una risorsa stringa.
Aggiungere un nuovo file Resources (con estensione resw) al project (lasciare il nome predefinito).
Con il file di risorse aperto nell'editor, creare una nuova risorsa di stringa con le proprietà seguenti.
- Nome: Messaggio
- Valore: Hello, resources!
Salvare il file di risorse.
Aprire il file del codice Program.cs e sostituire l'intero contenuto con il codice seguente
Console.WriteLine("Hello, World!");.
// Create a resource manager using the resource index generated during build. var manager = new Microsoft.Windows.ApplicationModel.Resources.ResourceManager("DynamicDependenciesTest.pri"); // Look up a string in the .resw file using its name. Console.WriteLine(manager.MainResourceMap.GetValue("Resources/Message").ValueAsString);- Fare clic su Avvia senza eseguire debug (o Avvia debug) per compilare ed eseguire l'app. Verrà visualizzata correttamente la stringa
Hello, resources!.
Se il project è WPF
Per un'app Windows Presentation Foundation (WPF), vedi Usare il Windows App SDK in un'app WPF.