Anpassen Ihrer Enterprise-Apps mit Änderungspaketen

Die Möglichkeit, die Erfahrung einer Anwendung anzupassen, ist wichtig, insbesondere für Unternehmen. Wir haben mit IT-Fachleuten gesprochen und wissen, dass die Anpassung von Anwendungen an die Bedürfnisse der Benutzer ein wesentlicher Bestandteil der Arbeit bei der Umstellung auf Windows 10 ist. Bei der Anpassung von Anwendungen, die mit MSI verpackt wurden, müssen IT-Fachleute das Paket bekanntlich von den Entwicklern erwerben und das Installationsprogramm mit den Anpassungen neu verpacken, um es ihren Bedürfnissen anzupassen. Dies ist ein kostspieliger Aufwand für Unternehmen. In Zukunft wollen wir die Anpassung und die Hauptanwendung entkoppeln, so dass kein Neu-Verpackung mehr nötig ist. Dadurch wird sichergestellt, dass Unternehmen die neuesten Updates von den Entwicklern erhalten und dennoch die Kontrolle über ihre Anpassungen behalten.

In Windows 10, Version 1809, wurde ein neuer MSIX-Pakettyp eingeführt, der als Änderungspaket bezeichnet wird. Änderungspakete sind MSIX-Pakete, die Anpassungen speichern. Änderungspakete können auch Plug-Ins/Add-Ons sein, die möglicherweise keinen Aktivierungspunkt haben. IT-Experten können dieses Feature verwenden, um MSIX-Container flexibel zu ändern, sodass Anwendungen von den Anpassungen ihres Unternehmens überlagert werden.

Funktionsweise

Änderungspakete sind für Unternehmen konzipiert, die nicht über den Code der Anwendung verfügen und nur über das Installationsprogramm verfügen. Sie können ein Änderungspaket mithilfe der neuesten Version des MSIX-Verpackungstools (für Windows 10, Version 1809 oder höher) erstellen. Wenn Sie über den Code für die Anwendung verfügen, können Sie alternativ eine App-Erweiterung erstellen.

Wenn Sie ein Änderungspaket erstellen möchten, das eine strenge Bindung an die Haupt-App aufweist, können Sie die Haupt-App als Abhängigkeit im Manifest des Änderungspakets deklarieren.

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

Im folgenden Beispiel wird veranschaulicht, wie Sie ein anderes Zertifikat oder einen anderen Herausgeber angeben.

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

Dies ist eine einfache Konfiguration, wenn die Beziehung zwischen dem Änderungspaket und Hauptpaket eins-zu-eins ist. Typische Anpassungen erfordern häufig Registrierungsschlüssel unter HKEY_CURRENT_USER oder HKEY_CURRENT_USERCLASS. In unserem MSIX-Paket haben wir die Dateien User.dat und Userclass.dat, um die Registrierungsschlüssel zu erfassen. Sie müssen die Datei User.dat erstellen, wenn Sie Registrierungsschlüssel unter HKCU\Software* benötigen (so wie die Datei Registry.dat für HKLM\Software* verwendet wird). Verwenden Sie Userclass.dat, wenn Sie Schlüssel unter HKCU\Sofware\Classes* benötigen.

Hier sind die typischen Methoden zum Erstellen einer .dat-Datei:

  • Verwenden Sie Regedit, um eine Datei zu erstellen. Erstellen Sie eine Struktur in Regedit und fügen Sie die erforderlichen Schlüssel ein. Dann Rechtsklick, exportieren und als Struktur-Datei speichern. Stellen Sie sicher, dass Sie die Datei entweder User.dat oder Userclass.dat nennen

  • Verwenden Sie eine API, um erforderliche Dateien zu erstellen. Sie können die ORSaveHive-Funktion verwenden, um eine .dat-Datei zu speichern. Stellen Sie sicher, dass Sie die Datei entweder User.dat oder Userclass.dat nennen

Nachdem Sie die notwendigen Änderungen vorgenommen haben, können Sie das Änderungspaket wie jedes andere MSIX-Paket erstellen. Dann können Sie das Paket mit der aktuellen Bereitstellungskonfiguration einrichten. Wenn Sie Ihre Haupt-App neu starten, können Sie die Änderungen sehen, die das Änderungspaket vorgenommen hat. Wenn Sie sich entscheiden, das Änderungspaket zu entfernen, wird Ihre Haupt-App in einen Zustand ohne das Änderungspaket zurückversetzt.

Erfahren Sie, welche Änderungspakete auf Ihrem Gerät installiert sind

Mithilfe von PowerShell können Sie installierte Änderungspakete mit dem folgenden Befehl anzeigen.

Get-AppPackage -PackageTypeFilter Optional

Änderungspakete unter Windows 10, Version 1809

Unter Windows 10, Version 1809, können Änderungspakete Konfigurationen enthalten, die in der Registrierung festgelegt werden müssen, damit das Hauptpaket wie erwartet ausgeführt werden kann. Das bedeutet, dass Ihre Hauptanwendung die Registrierung nutzt, um festzustellen, ob ein Plug-in vorhanden ist. Wenn Sie das Hauptpaket und das Änderungspaket bereitstellen, wird in der Anwendung zur Laufzeit die virtuelle Registrierung (VREG) des Hauptpakets und des Änderungspakets angezeigt.

Beachten Sie, dass im Hauptpaket die virtuelle Registrierung für Folgendes verwendet werden kann:

  • Anzeigen, wo die Datei (die DLL) des Plug-ins geladen werden soll. Wenn dies der Fall ist, stellen Sie sicher, dass die Datei Teil des Pakets ist. Dadurch kann das Hauptpaket zur Laufzeit auf die Datei zugreifen.
  • Anzeigen, wo der Wert der VREG-Schlüssel angezeigt wird. Im Hauptpaket wird möglicherweise nach einem Wert gesucht, der in der virtuellen Registrierung enthalten sein muss. Wenn Sie das Änderungspaket manuell oder mithilfe unseres Tools erstellen, stellen Sie sicher, dass der Wert richtig ist.

Änderungspakete unter Windows 10, Version 1903, und höher

Die folgenden Features wurden in Windows 10 Version 1903 hinzugefügt.

Aktualisierung des Manifests

Dem Manifest des MSIX-Änderungspakets wurde die Unterstützung für das folgende Element hinzugefügt.

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

Um sicherzustellen, dass Änderungspakete in Version 1903 oder höher ausgeführt werden, muss das Manifest des Änderungspakets dieses Element enthalten. Dies erfolgt automatisch, wenn Sie das MSIX-Änderungspaket mit der Januar-Version des MSIX Packaging Tools packen. Wenn Sie ein Paket mit einer früheren Version des Tools konvertiert haben, können Sie das vorhandene Paket im Tool bearbeiten und dieses neue Element hinzufügen. Wenn Benutzer das Änderungspaket installieren, werden sie außerdem darüber gewarnt, dass die Hauptanwendung möglicherweise durch das Paket geändert wird.

Wenn Sie ein Änderungspaket verwenden, das vor Version 1903 erstellt wurde, müssen Sie das Paketmanifest bearbeiten, um das MaxVersionTested-Attribut auf 10.0.18362.0 zu aktualisieren.

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

Erstellen eines Änderungspakets mit dem MSIX Packaging Tool

Sie können mit dem MSIX Packaging Tool ein Änderungspaket erstellen:

  • Geben Sie das Hauptpaket an. Achten Sie darauf, dass die MSIX-Version des Hauptpakets auf dem Computer verfügbar ist, auf dem Sie die Konvertierung durchführen. Wenn dies nicht der Fall ist, werden Sie aufgefordert, die Informationen zum Herausgeber und der Hauptanwendung manuell einzugeben. Bei einigen Anpassungen ist es auch erforderlich, dass die Hauptanwendung auf dem Computer installiert ist. Modification Package MPT

  • Ändern Sie das Paket nach der Konvertierung im Paket-Editor. In manchen Fällen macht es das Hauptpaket erforderlich, dass das Änderungspaket bestimmte Werte in der virtuellen Registrierung enthält. In diesen Fällen bearbeiten Sie das Paket entsprechend.

Erstellen eines Änderungspakets mithilfe von MakeAppx.exe

Sie können ein Änderungspaket manuell mithilfe des Tools MakeAppX.exe erstellen, das im Windows 10 SDK enthalten ist.

  • Geben Sie im Manifest das Hauptpaket an. Geben Sie den Herausgeber und den Namen des Hauptpakets ein.

    <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>
    
  • Erstellen Sie Registry.dat, User.dat und Userclass.dat, um alle Registrierungsschlüssel zu erstellen, die zum Laden des Änderungspakets erforderlich sind. Dies ist nur erforderlich, wenn in der Hauptanwendung benutzerdefinierte Registrierungsschlüssel angezeigt werden müssen. Da alles innerhalb eines Containers ausgeführt wird, werden die virtuellen Registrierungen des Hauptpakets und des Änderungspakets zur Laufzeit zusammengeführt, sodass im Hauptpaket die virtuelle Registrierung des Änderungspakets überprüft werden kann.

Dieser Vorgang unterstützt auch Plug-Ins und Anpassungen des Dateisystems, solange die ausführbare Datei der Hauptanwendung sich nicht in einem virtuellen Dateisystem (VFS) befindet. Dadurch wird sichergestellt, dass das Hauptpaket das gesamte virtuelle Dateisystem des Hauptpakets und des Änderungspakets erhält.

Installieren von Änderungspaketen auf dem Computer

Das Installieren von Änderungspaketen auf dem Computer folgt anderen Installationskonventionen. Es sei darauf hingewiesen, dass Sie bei der Installation des Pakets den Parameter -OptionalPackagePath verwenden sollten.

Konfliktlösung

Wenn mehrere Änderungspakete versuchen, denselben Wert zu ändern, wird der Konflikt anhand der alphabetischen Reihenfolge der Namen der Änderungspakete aufgelöst.