Personalizzare le app aziendali con pacchetti di modifica

La possibilità di personalizzare l'esperienza di un'applicazione è importante, soprattutto per le aziende. Abbiamo parlato con i professionisti IT e sappiamo che la personalizzazione delle applicazioni per soddisfare le esigenze dell'utente è essenziale per il passaggio a Windows 10. Quando si personalizzano le applicazioni incluse in un pacchetto tramite MSI, è ben chiaro 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 costoso per le aziende. In futuro, vogliamo separare la personalizzazione e l'applicazione principale in modo che la ri-creazione del pacchetto non sia più necessaria. 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 dell'azienda.

Funzionamento

I pacchetti di modifica sono progettati per le aziende che non possiedono il codice dell'applicazione e hanno solo il programma di installazione. Puoi 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, in alternativa è possibile creare un'estensione dell'app.

Se vuoi creare un pacchetto di modifica con un'associazione rigorosa all'app principale, puoi 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 server di pubblicazione 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 spesso richiedono chiavi del Registro di sistema in HKEY_CURRENT_Uedizione Standard R o HKEY_CURRENT_Uedizione Standard RCLASS. All'interno del pacchetto MSIX sono disponibili file User.dat e Userclass.dat per acquisire le chiavi del Registro di sistema. Sarà 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. Fare clic con il pulsante destro del mouse, esportare e salvare il file hive con nome hive. Assicurarsi di denominare il file 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 denominare il file 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 configurazione di distribuzione corrente. Quando si riavvia l'app principale, è possibile visualizzare le modifiche apportate al pacchetto di modifica. Se scegli di rimuovere il pacchetto di modifica, l'app principale ripristina lo 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 da impostare nel Registro di sistema in modo che il pacchetto principale venga eseguito come previsto. Ciò significa che l'applicazione principale sfrutta il Registro di sistema per visualizzare 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 in 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 MaxVersionTested a 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. Modification Package MPT

  • 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

Puoi creare manualmente un pacchetto di modifica usando lo strumento MakeAppX.exe incluso 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 pacchetti di modifica nel computer

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

Risoluzione dei conflitti

In caso di più pacchetti di modifica che tentano di modificare lo stesso valore, il conflitto viene risolto considerando l'ordine alfabetico dei nomi dei pacchetti di modifica.