Condividi tramite


Confeziona la tua app utilizzando MSIX a progetto singolo

MSIX a progetto singolo è una funzionalità che consente di creare un'app desktop WinUI 3 impacchettata senza la necessità di un progetto di packaging separato. Un'app WinUI è una che usa il framework WinUI per l'interfaccia utente; e usa il Windows App SDK. Per confezionare un'app desktop non un'app WinUI, vedere Impostare l'applicazione desktop per la creazione di pacchetti MSIX in Visual Studio.

La funzionalità MSIX per progetti singoli è disponibile come estensione di Visual Studio utilizzabile per questi scenari:

  • Creare una nuova app desktop WinUI usando il modello di progetto Blank App, Packaged (WinUI in Desktop) di Visual Studio fornito con Windows App SDK. Questo progetto è configurato per compilare la tua app in un pacchetto MSIX senza dover creare un progetto di pacchetto separato.
  • Modificare un'app desktop WinUI esistente che usa un progetto separato per la creazione di pacchetti. La modifica comporta la rimozione del progetto di imballaggio separato, come illustrato nella figura seguente.

Confronto tra il progetto di confezionamento e il progetto singolo

Panoramica

Questa sezione presenta alcuni dettagli importanti sulla funzionalità MSIX a progetto singolo.

Vantaggi

Prima dell'introduzione della funzionalità MSIX a progetto singolo, se si voleva creare un'app desktop WinUI in pacchetto, erano necessari due progetti nella soluzione, ovvero il progetto dell'app, oltre a un Windows Application Packaging Project aggiuntivo (vedere Impostare l'applicazione desktop per la creazione di pacchetti MSIX in Visual Studio). La funzionalità MSIX a progetto singolo consente di sviluppare e generare l'app usando solo un progetto per l'app. Ciò offre una struttura project più pulita e un'esperienza di sviluppo più semplice. Ad esempio, non è più necessario selezionare il progetto di packaging separato come progetto di avvio.

Tipi di project supportati

La funzionalità MSIX a project singolo supporta modelli WinUI in Visual Studio (C# e C++) per il Windows App SDK.

Limiti

MSIX con progetto singolo supporta un solo eseguibile nel pacchetto MSIX generato. Se è necessario combinare più file eseguibili in un singolo pacchetto MSIX, è necessario continuare a usare un pacchetto di applicazioni Windows Project nella soluzione.

Installare gli strumenti per la creazione di pacchetti MSIX a progetto singolo

Gli strumenti per la creazione di pacchetti MSIX a progetto singolo includono modelli di progetto di Visual Studio che è possibile usare per creare nuove app desktop WinUI con pacchetto. Questi strumenti sono inclusi nell'estensione Windows App SDK per Visual Studio. Per istruzioni di installazione per il Windows App SDK, vedere Installare gli strumenti per Windows App SDK.

Windows App SDK versione 0.8 e C# di 1.0 Preview 3: Gli strumenti per la creazione di pacchetti MSIX a progetto singolo non sono inclusi nell'estensione Windows App SDK per Visual Studio per Windows App SDK versione 0.8 o per i progetti C# fino e compreso l'anteprima 3 di Windows App SDK 1.0. Pertanto, se si usano queste versioni, potrebbe essere necessario installare in modo esplicito gli strumenti per la creazione di pacchetti MSIX per progetto singolo. Vedere l'elenco di seguito:

  • Visual Studio 2022 versione 17.1 e successive: l'estensione del progetto singolo MSIX Packaging Tools per Visual Studio 2022 VSIX è integrata in Visual Studio 2022 versione 17.1 e successive.

  • Visual Studio 2022 prima della versione 17.1: Installare l'estensione VSIX Single-project MSIX Packaging Tools per Visual Studio 2022.

Per verificare che l'estensione sia installata, fare clic su Extensions>Gestisci estensioni>Installato>Tutti e verificare che Single-project MSIX Packaging Tools sia elencata.

Creare un nuovo project

Se usi Windows App SDK 1.0 Preview 2 o versione successiva, puoi creare una nuova app basata su WinUI che include il supporto MSIX a project singolo usando semplicemente il modello Blank App, Packaged (WinUI in Desktop). Per ulteriori informazioni, vedi Crea il tuo primo progetto WinUI.

Modificare un project esistente

Seguire la procedura descritta in questa sezione per modificare un'app basata su WinUI esistente che usa un progetto di impacchettamento separato. I passaggi includono lo spostamento del manifesto del pacchetto (e altro supporto necessario per compilare un pacchetto MSIX) nel progetto dell'applicazione e quindi la rimozione del progetto di packaging separato.

Passaggio 1: Creare o aprire un progetto di packaging esistente.

Se hai già una soluzione per un'app desktop WinUI (vedi modelli WinUI in Visual Studio) che include un Progetto per il packaging delle applicazioni Windows (vedi Configura l'applicazione desktop per il packaging MSIX in Visual Studio), perciò apri la soluzione in Visual Studio ora.

In caso contrario, creare una nuova app desktop WinUI in Visual Studio utilizzando il modello Blank App, con il progetto di creazione di pacchetti di applicazioni Windows (WinUI in Desktop). La soluzione sarà simile alla schermata seguente.

soluzione Una soluzione che usa il progetto di creazione di pacchetti

Passaggio 2: Modificare le impostazioni dell'applicazione project

Successivamente, modifica alcune impostazioni per usare la funzionalità MSIX a progetto singolo. Sono disponibili istruzioni diverse a seconda del tipo di project e della versione Visual Studio.

  1. In Solution Explorer fare doppio clic sul nodo project per l'applicazione per aprire il file .csproj nell'editor XML. Aggiungere il codice XML seguente all'elemento principale <PropertyGroup>.

    <EnableMsixTooling>true</EnableMsixTooling>
    <PublishProfile>Properties\PublishProfiles\win10-$(Platform).pubxml</PublishProfile>
    

    Al termine, l'elemento <PropertyGroup> deve essere simile a quello riportato di seguito.

    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <OutputType>WinExe</OutputType>
        <TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>
        ...
        <UseWinUI>true</UseWinUI>
        <EnableMsixTooling>true</EnableMsixTooling>
        <PublishProfile>Properties\PublishProfiles\win10-$(Platform).pubxml</PublishProfile>
      </PropertyGroup>
    
  2. Salva le modifiche e chiudi il file .csproj.

  3. Eseguire una delle procedure seguenti, a seconda della versione di Visual Studio.

    For Visual Studio 2022 o versione successiva:

    1. In Solution Explorer fare clic con il pulsante destro del mouse sulla cartella Proprietà nel nodo project per l'applicazione e selezionare Aggiungi>Nuovo elemento... .

    2. Selezionare File di testo, assegnare al nuovo file il nome launchSettings.json e fare clic su Aggiungi. Assicurarsi che il nuovo file si trova nella cartella Properties dell'applicazione project.

    3. Copiare le seguenti impostazioni nel nuovo file. È possibile modificare i valori in base alle esigenze per lo scenario. Il valore MyApp può essere qualsiasi stringa. Non è necessario che corrisponda al nome dell'applicazione.

      {
          "profiles": {
              "MyApp": {
                  "commandName": "MsixPackage",
                  "commandLineArgs": "", /* Command line arguments to pass to the app. */
                  "alwaysReinstallApp": false, /* Uninstall and then reinstall the app. All information about the app state is deleted. */
                  "remoteDebugEnabled": false, /* Indicates that the debugger should attach to a process on a remote machine. */
                  "allowLocalNetworkLoopbackProperty": true, /* Allow the app to make network calls to the device it is installed on. */
                  "authenticationMode": "Windows", /* The authentication scheme to use when connecting to the remote machine. */
                  "doNotLaunchApp": false, /* Do not launch the app, but debug my code when it starts. */
                  "remoteDebugMachine": "", /* The name of the remote machine. */
                  "nativeDebugging": false /* Enable debugging for managed and native code together, also known as mixed-mode debugging. */
              }
          }
      }
      
    4. Salvare e chiudere il file launchSettings.json.

Passaggio 3: Spostare i file nel progetto dell'applicazione

Spostare quindi diversi file importanti nel progetto dell'applicazione. Sono disponibili istruzioni diverse a seconda del tipo di project.

  1. In File Explorer sposta il file Package.appxmanifest e la cartella Images dal progetto di creazione pacchetti al progetto dell'applicazione. Posizionare il file e la cartella nel livello superiore della gerarchia di cartelle dell'applicazione project.
  2. In Visual Studio, in Solution Explorer selezionare in più tutte le immagini all'interno della cartella Images. Dalla finestra Proprietà impostare Compila operazione su Contenuto.
  3. Rimuovi il progetto di packaging dalla soluzione.

Illustrazione dello spostamento dei file nell'app principale

Passaggio 4: Abilitare la distribuzione in Configuration Manager

  1. Selezionare Build>Configuration Manager.
  2. In Configuration Manager fare clic sulla casella di controllo Deploy per ogni combinazione di configurazione e piattaforma(ad esempio, Debug e x86, Debug e arm64, Release e x64 e altro ancora).

    Nota

    Assicurarsi di usare gli elenchi a discesa Configurazione di soluzione attiva e Piattaforma di soluzione attiva nella parte alta anziché Configurazione e Piattaforma nella stessa riga della casella di controllo Distribuisci.

Abilitazione di Distribuire in Configuration Manager

Passaggio 5: distribuire l'app

Compila e distribuisci il tuo progetto applicativo. Visual Studio compilerà l'applicazione in un pacchetto MSIX, installerà il pacchetto e quindi eseguirà l'applicazione.

Passaggio 6: creare un pacchetto dell'app per la pubblicazione

Usa il comando Package & Publish in Visual Studio per creare il pacchetto dell'applicazione per pubblicarlo nel Microsoft Store.

Automatizzare il build e il confezionamento della tua app MSIX a progetto singolo

È possibile usare msbuild per generare e creare un pacchetto dell'app MSIX a singolo progetto, consentendo così di automatizzare il flusso di lavoro. La tecnica per una soluzione a progetto singolo e per la riga di comando è solo leggermente diversa da quella che potresti già seguire se hai una soluzione a due progetti, una delle quali include un Windows Application Packaging Project (vedere Impostare l'applicazione desktop per la creazione di pacchetti MSIX in Visual Studio).

L'opzione di comando di compilazione importante per una soluzione a progetto singolo è /p:GenerateAppxPackageOnBuild=true. Senza questa opzione, il project verrà compilato, ma non si otterrà un pacchetto MSIX. Includere quest'opzione indurrà la generazione del pacchetto MSIX.

Esiste un esempio completo sotto forma di un'azione di GitHub che crea una soluzione WinUI a progetto singolo.

Nota

MSIX a progetto singolo attualmente non supporta la creazione di pacchetti bundle MSIX (vedere Bundling MSIX packages). Produce solo un singolo MSIX. È tuttavia possibile aggregare file .msix in un bundle MSIX usando l'azione MSIX Bundler GitHub.

Come funziona un'applicazione desktop inclusa nel pacchetto su Windows

Per un approfondimento su cosa accade ai file e alle voci del Registro di sistema quando si crea un pacchetto di Windows app per l'applicazione desktop, vedere Informazioni sull'esecuzione delle app desktop in pacchetto in Windows.

Inviare commenti

Per inviare commenti e suggerimenti, segnalare problemi o porre domande sulla funzionalità MSIX per progetto singolo, avviare una discussione o segnalare un problema nel repository Windows App SDK GitHub.