Anpassen Ihrer Enterprise-Apps mit Änderungspaketen

Die Möglichkeit, die Benutzeroberfläche einer Anwendung anzupassen, ist wichtig, insbesondere für Unternehmen. Wir haben mit IT-Experten gesprochen und wissen, dass das Anpassen von Anwendungen an die Anforderungen der Benutzer für die Umstellung auf Windows 10 von entscheidender Bedeutung ist. Beim Anpassen von Anwendungen, die mit MSI gepackt werden, ist es klar, dass IT-Experten das Paket von den Entwicklern abrufen und das Installationsprogramm mit der Anpassung neu packen müssen, um ihren Anforderungen gerecht zu werden. Dies ist ein kostspieliger Aufwand für Unternehmen. In Zukunft möchten wir die Anpassung und die Hauptanwendung entkoppeln, damit keine erneute Paketierung mehr benötigt wird. Dadurch wird sichergestellt, dass Unternehmen die neuesten Updates von Entwicklern erhalten und gleichzeitig die Kontrolle über ihre Anpassungen behalten.

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 Plug-Ins/Add-Ons sein, die möglicherweise keinen Aktivierungspunkt aufweisen. IT-Experten können dieses Feature verwenden, um MSIX-Container flexibel zu ändern, sodass Anwendungen durch die 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 erstellen, indem Sie die neueste Version des MSIX-Paketerstellungstools verwenden (für Windows 10 Version 1809 oder höher). Wenn Sie über den Code für die Anwendung verfügen, können Sie alternativ eine App-Erweiterungerstellen.

Wenn Sie ein Änderungspaket erstellen möchten, das über eine strenge Bindung an die Haupt-App verfügt, 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 1:1 ist. Typische Anpassungen erfordern häufig Registrierungsschlüssel unter HKEY_CURRENT_USER oder HKEY_CURRENT_USERCLASS. In unserem MSIX-Paket befinden sich die Dateien User.dat und Userclass.dat, 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 für HKLM\Software verwendet * wird). Verwenden Sie Userclass.dat, wenn Sie Schlüssel unter HKCU\Sofware\Classes * benötigen.

Hier sind 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. Wenn Sie mit der rechten Maustaste klicken, exportieren Sie die Hive-Datei, und speichern Sie sie. Benennen Sie die Datei entweder User.dat oder Userclass.dat.

  • Verwenden Sie eine API, um die erforderlichen Dateien zu erstellen. Sie können die ORSaveHive-Funktion verwenden, um eine DAT-Datei zu speichern. Geben Sie der Datei den Namen User.dat oder Userclass.dat.

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 Bereitstellung 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 das Änderungspaket in den Zustand zurückgesetzt.

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 auf Windows 10, Version 1809

Auf Windows 10, Version 1809 können Änderungspakete Konfigurationen enthalten, die in der Registrierung so festgelegt werden müssen, dass das Hauptpaket wie erwartet ausgeführt wird. Dies bedeutet, dass Ihre Hauptanwendung die Registrierung nutzt, 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.

Änderungspakete für 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. Änderungspaket mit 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 das toolMakeAppX.exe 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

Die Installation von Änderungspaketen auf dem Computer folgt anderen Installationskonventionen. Es ist zu bedenken, dass Sie bei der Installation des Pakets möglicherweise den Parameter -OptionalPackagePath verwenden möchten.