Anpassen Ihrer Enterprise Apps mit Änderungspaketen

Die Möglichkeit, die Erfahrung einer Anwendung anzupassen, ist wichtig, insbesondere für Unternehmen. Wir haben mit IT-Experten gesprochen, und wir wissen, dass das Anpassen von Anwendungen, um den Anforderungen ihres Benutzers gerecht zu werden, wichtig ist, um zu Windows 10 zu wechseln. Beim Anpassen von Anwendungen, die mit MSI verpackt werden, ist es gut verstanden, dass IT-Experten das Paket von den Entwicklern erwerben und das Installationsprogramm mit der Anpassung erneut verpacken müssen, um ihren Anforderungen gerecht zu werden. Dies ist ein kostspieliger Aufwand für Unternehmen. Nach vorne möchten wir die Anpassung und die Hauptanwendung entkoppeln, damit die Verpackung nicht mehr benötigt wird. Dadurch wird sichergestellt, dass Unternehmen die neuesten Updates von Entwicklern erhalten, während sie weiterhin die Kontrolle über ihre Anpassungen erhalten.

In Windows 10, Version 1809 haben wir einen neuen MsIX-Pakettyp eingeführt, der als Änderungspaket bezeichnet wird. Änderungspakete sind MSIX-Pakete, die Anpassungen speichern. Änderungspakete können auch Plugins/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 den Code der Anwendung besitzen 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 dem Hauptpaket eins zu einem ist. Typische Anpassungen erfordern häufig Registrierungsschlüssel unter HKEY_CURRENT_USER oder HKEY_CURRENT_USERCLASS. Innerhalb unseres MSIX-Pakets verfügen wir über User.dat- und Userclass.dat-Dateien, um die Registrierungsschlüssel zu erfassen. Sie müssen User.dat erstellen, wenn Sie Registrierungsschlüssel unter HKCU\Software* benötigen (genau wie Registry.dat wird für HKLM\Software*) verwendet. Verwenden Sie Userclass.dat, wenn Sie Schlüssel unter HKCU\Sofware\Klassen* benötigen.

Nachfolgend finden Sie die typischen Möglichkeiten 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. Als mit der rechten Maustaste klicken, exportieren und speichern als Hive-Datei. Stellen Sie sicher, dass Sie die Datei entweder User.dat oder Userclass.dat benennen.

  • 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 ether User.dat oder Userclass.dat benennen.

Nachdem Sie die erforderlichen Änderungen vorgenommen haben, können Sie das Änderungspaket wie jedes andere MSIX-Paket erstellen. Anschließend können Sie das Paket mit der aktuellen Bereitstellungseinrichtung bereitstellen. Wenn Sie Ihre Haupt-App neu starten, können Sie die Änderungen sehen, die das Änderungspaket vorgenommen hat. Wenn Sie das Änderungspaket entfernen möchten, wird ihre Haupt-App ohne Änderungspaket auf einen Zustand zurückgesetzt.

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

Mithilfe von PowerShell können Sie installierte Änderungspakete mithilfe des folgenden Befehls anzeigen.

Get-AppPackage -PackageTypeFilter Optional

Ändern von Paketen auf Windows 10, Version 1809

Bei Windows 10, Version 1809 können Änderungspakete Konfigurationen enthalten, die in der Registrierung festgelegt werden müssen, sodass das Hauptpaket wie erwartet ausgeführt wird. Die Hauptanwendung nutzt die Registrierung, um anzuzeigen, 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.

Ändern von Paketen auf Windows 10, Version 1903 und höher

Die folgenden Funktionen 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 erstellen, indem Sie dasMakeAppX.exeTool verwenden, 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 lohnt sich zu beachten, dass Sie den Parameter "-OptionalPackagePath " beim Installieren des Pakets verwenden möchten.

Konfliktlösung

Bei mehreren Änderungspaketen, die versuchen, denselben Wert zu ändern, wird der Konflikt gelöst, indem die alphabetische Reihenfolge der Namen der Änderungspakete berücksichtigt wird.