Personalizzare le app Enterprise con pacchetti di modifica

La possibilità di personalizzare l'esperienza di un'applicazione è importante, in particolare per le aziende. Abbiamo parlato con i professionisti IT e si sa che la personalizzazione delle applicazioni per soddisfare le esigenze dell'utente è essenziale per il passaggio a Windows 10. Quando si personalizzano applicazioni in pacchetto tramite msi, è ben noto che i professionisti IT devono acquisire il pacchetto dagli sviluppatori e ri-creare un pacchetto del programma di installazione con la personalizzazione in base alle proprie esigenze. Si tratta di un impegno diss costose per le aziende. In futuro, si vuole separare la personalizzazione e l'applicazione principale in modo che non sia più necessario ri-creare un nuovo pacchetto. In questo modo le aziende ottengono gli aggiornamenti più recenti dagli sviluppatori mantenendo comunque il controllo delle personalizzazioni.

In Windows 10, versione 1809 è stato introdotto un nuovo tipo di pacchetto MSIX denominato pacchetto di modifica. I pacchetti di modifica sono pacchetti MSIX che archiviano le personalizzazioni. I pacchetti di modifica possono anche essere plug-in/componenti aggiuntivi che potrebbero non avere un punto di attivazione. I professionisti IT possono usare questa funzionalità per modificare in modo flessibile i contenitori MSIX in modo che le applicazioni siano sovrapposte dalle personalizzazioni aziendali.

Funzionamento

I pacchetti di modifica sono progettati per le aziende che non sono proprietarie del codice dell'applicazione e hanno solo il programma di installazione. È possibile creare un pacchetto di modifica usando la versione più recente dello strumento di creazione pacchetti MSIX (per Windows 10 versione 1809 o successiva). Se si dispone del codice per l'applicazione, è possibile creare in alternativa un'estensione dell'app.

Se si vuole creare un pacchetto di modifica con un binding rigoroso all'app principale, è possibile dichiarare l'app principale come dipendenza nel manifesto del pacchetto di modifica.

<Dependencies>
    <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.15063.0"/>
    <uap4:MainPackageDependency Name="Main.App"/>
</Dependencies>

Nell'esempio seguente viene illustrato come specificare un certificato o un editore diverso.

<Dependencies>
    <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.15063.0"/>
    <uap4:MainPackageDependency Name="Main.App" Publisher="CN=Contoso, C=US" />
</Dependencies>

Si tratta di una configurazione semplice se la relazione tra il pacchetto di modifica e il pacchetto principale è uno-a-uno. Le personalizzazioni tipiche richiedono spesso chiavi del Registro di HKEY_CURRENT_USER o HKEY_CURRENT_USERCLASS. All'interno del pacchetto MSIX sono contenuti i file User.dat e Userclass.dat per acquisire le chiavi del Registro di sistema. È necessario creare User.dat se sono necessarie chiavi del Registro di sistema in HKCU\Software* (proprio come Registry.dat viene usato per HKLM\Software*). Usare Userclass.dat se sono necessarie chiavi in HKCU\Sofware\Classes*.

Ecco i modi tipici per creare un file con estensione dat:

  • Usare Regedit per creare un file. Creare un hive in Regedit e inserire le chiavi necessarie. Anziché fare clic con il pulsante destro del mouse, esportare e salvare come file hive. Assicurarsi di assegnare al file il nome User.dat o Userclass.dat

  • Usare un'API per creare i file necessari. È possibile usare la funzione ORSaveHive per salvare un file con estensione dat. Assicurarsi di assegnare al file il nome ether User.dat o Userclass.dat

Dopo aver apportato le modifiche necessarie, è possibile creare il pacchetto di modifica come qualsiasi altro pacchetto MSIX. È quindi possibile distribuire il pacchetto con la distribuzione corrente impostata. Quando si riavvia l'app principale, è possibile visualizzare le modifiche apportate dal pacchetto di modifica. Se si sceglie di rimuovere il pacchetto di modifica, l'app principale tornerà a uno stato senza il pacchetto di modifica.

Informazioni sui pacchetti di modifica installati nel dispositivo

Con PowerShell è possibile visualizzare i pacchetti di modifica installati usando il comando seguente.

Get-AppPackage -PackageTypeFilter Optional

Pacchetti di modifica in Windows 10, versione 1809

In Windows 10, versione 1809, i pacchetti di modifica possono includere configurazioni che devono essere impostate nel Registro di sistema in modo che il pacchetto principale verrà eseguito come previsto. Ciò significa che l'applicazione principale sfrutta il Registro di sistema per verificare se esiste un plug-in. Quando si distribuiscono il pacchetto principale e il pacchetto di modifica, in fase di esecuzione l'applicazione esaminerà il registro virtuale sia del pacchetto principale, sia del pacchetto di modifica.

Tieni presente che il pacchetto principale può usare il registro virtuale per eseguire le operazioni seguenti:

  • Visualizzazione della posizione in cui caricare il file (DLL) del plug-in. In tal caso, assicurati che il file sia compreso nel pacchetto. In questo modo, il pacchetto principale può accedere al file in fase di esecuzione.
  • Verificare la posizione in cui recuperare il valore delle chiavi del registro virtuale. Il pacchetto principale potrebbe cercare l'esistenza di un valore nel registro virtuale. Quando crei il pacchetto di modifica, manualmente o usando l'apposito strumento, assicurati che il valore sia corretto.

Pacchetti di modifica Windows 10 versione 1903 e successive

In Windows 10 versione 1903 sono state aggiunte le funzionalità seguenti.

Aggiornamento del manifesto

È stato aggiunto il supporto per l'elemento seguente al manifesto del pacchetto di modifica MSIX.

<Properties>
   <rescap6:ModificationPackage>true</rescap6:ModificationPackage>
</Properties>

Per garantire il funzionamento dei pacchetti di modifica nella versione 1903 o successiva, il manifesto del pacchetto di modifica deve includere questo elemento. L'operazione verrà eseguita automaticamente se crei il pacchetto di modifica MSIX usando la versione di gennaio di MSIX Packaging Tool. Se hai convertito un pacchetto usando lo strumento prima del rilascio di questa versione, puoi modificare il pacchetto esistente nello strumento per aggiungere il nuovo elemento. Inoltre, se gli utenti installano il pacchetto di modifica, riceveranno l'avviso che il pacchetto può modificare l'applicazione principale.

Se si usa un pacchetto di modifica creato prima della versione 1903, è necessario modificare il manifesto del pacchetto per aggiornare l'attributo alla MaxVersionTested versione 10.0.18362.0.

<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17701.0" MaxVersionTested="10.0.18362.0" />

Creare un pacchetto di modifica usando MSIX Packaging Tool

Puoi creare un pacchetto di modifica con MSIX Packaging Tool:

  • Specifica il pacchetto principale. Assicurati che la versione MSIX del pacchetto principale sia disponibile nel computer in cui esegui la conversione. In caso contrario, ti verrà chiesto di specificare manualmente le informazioni principali sull'applicazione e sull'editore. Anche alcune personalizzazioni richiedono che l'applicazione principale sia installata nel computer. MPT del pacchetto di modifica

  • Modifica il pacchetto dopo la conversione usando l'editor pacchetti. In alcuni casi, il pacchetto principale richiede che nel registro virtuale del pacchetto di modifica siano presenti determinati valori. È lì che devi intervenire e modificare il pacchetto in modo appropriato.

Creare un pacchetto di modifica usando MakeAppx.exe

È possibile creare manualmente un pacchetto di modifica usando lo strumentoMakeAppX.exeincluso in Windows 10 SDK.

  • Specifica il pacchetto principale nel manifesto. Includi l'editor e il nome del pacchetto principale.

    <Dependencies>
      <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17701.0" MaxVersionTested="12.0.0.0"/>
      <uap4:MainPackageDependency Name="HeadTrax" Publisher="CN=Contoso Software, O=Contoso Corporation, C=US" />
    </Dependencies>
    
  • Crea i file Registry.dat, User.dat e Userclass.dat per creare tutte le chiavi del Registro di sistema necessarie per caricare il pacchetto di modifica. Questo è solo necessario se l'applicazione principale deve accedere a chiavi del Registro di sistema personalizzate. Tieni presente che, poiché tutto viene eseguito all'interno di un contenitore, in fase di runtime il registro virtuale del pacchetto principale e del pacchetto di modifica verranno uniti, in modo che il pacchetto principale possa visualizzare il registro virtuale del pacchetto di modifica.

Questo processo supporta anche plug-in e personalizzazioni del file system, purché l'eseguibile dell'applicazione principale non si trovi in un file system virtuale (VFS). Questo si garantisce che il pacchetto principale otterrà l'intero VFS pacchetto principale e del pacchetto di modifica.

Installare i pacchetti di modifica nel computer

L'installazione dei pacchetti di modifica nel computer segue altre convenzioni di installazione. È opportuno notare che è possibile usare il parametro -OptionalPackagePath durante l'installazione del pacchetto.