Anpassen Ihrer Unternehmens-apps mit Änderungs PaketenCustomize your Enterprise apps with modification packages

Die Möglichkeit zum Anpassen der Anwendungs Freundlichkeit ist wichtig, besonders für Unternehmen.The ability to customize an application's experience is important, especially for enterprises. Wir haben mit den IT-Experten gesprochen und wissen, dass das Anpassen von Anwendungen an die Anforderungen des Benutzers für den Umstieg auf Windows 10 entscheidend ist.We’ve spoken to IT professionals and we know that customizing applications to meet their user's needs is essential to the effort of moving to Windows 10. Beim Anpassen von Anwendungen, die mithilfe von MSI verpackt werden, ist es gut zu verstehen, dass IT-Experten das Paket von den Entwicklern erwerben und das Installationsprogramm mit der Anpassung neu verpacken müssen, um es an Ihre Anforderungen anzupassen.When customizing applications that are packaged using MSI, it is well understood that IT professionals must acquire the package from the developers and re-package the installer with the customization to suit their needs. Dies ist ein kostspieliger Aufwand für Unternehmen.This is a costly effort for enterprises. Wir möchten die Anpassung und die Hauptanwendung entkoppeln, damit das erneute Verpacken nicht mehr benötigt wird.Moving forward, we want to decouple the customization and the main application so that re-packaging is no longer needed. Dadurch wird sichergestellt, dass Unternehmen die neuesten Updates von Entwicklern erhalten und gleichzeitig die Kontrolle über Ihre Anpassungen behalten.This ensures that enterprises get the latest updates from developers while still maintaining control of their customizations.

In Windows 10, Version 1809, haben wir einen neuen msix-Pakettyp eingeführt, der als Änderungs Paketbezeichnet wird.In Windows 10, version 1809, we introduced a new type of MSIX package called a modification package. Änderungs Pakete sind msix-Pakete, in denen Anpassungen gespeichert werden.Modification packages are MSIX packages that store customizations. Änderungs Pakete können auch Plug-Ins/Add-ons sein, die möglicherweise nicht über einen Aktivierungspunkt verfügen.Modification packages can also be plugins/add-ons that may not have an activation point. Mit dieser Funktion können IT-Experten msix-Container flexibel ändern, sodass Anwendungen über die Anpassungen Ihres Unternehmens überlagert werden.IT professionals can use this feature to flexibly change MSIX containers so that applications are overlaid by their enterprise's customizations.

FunktionsweiseHow it works

Änderungs Pakete sind für Unternehmen konzipiert, die den Code der Anwendung nicht besitzen und nur über den Installer verfügen.Modification packages are designed for enterprises that do not own the code of the application and only have the installer. Sie können ein Änderungs Paket erstellen, indem Sie die neueste Version des msix-Paketierungs Tools (für Windows 10, Version 1809 oder höher) verwenden.You can create a modification package by using the latest version of the MSIX packaging tool (for Windows 10 version 1809 or later). Wenn Sie über den Code für die Anwendung verfügen, können Sie alternativ eine App-Erweiterungerstellen.If you have the code for the application, you can alternatively create an app extension.

Wenn Sie ein Änderungs Paket erstellen möchten, das über eine strikte Bindung an die Haupt-App verfügt, können Sie die Haupt-App als Abhängigkeit im Manifest des Änderungs Pakets deklarieren.If you want to create a modification package that has a strict binding to the main app, you can declare the main app as a dependency in the modification package’s manifest.

<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 Verleger angeben.The following example demonstrates how to specify a different certificate or publisher.

<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 Änderungs Paket und dem Hauptpaket eins-zu-eins ist.This is a simple configuration if the relationship between the modification package and main package is one-to-one. Typische Anpassungen erfordern häufig Registrierungsschlüssel unter HKEY_CURRENT_USER oder HKEY_CURRENT_USERCLASS.Typical customizations often require registry keys under HKEY_CURRENT_USER or HKEY_CURRENT_USERCLASS. Innerhalb des msix-Pakets verfügen wir über die Dateien User. dat und userclass. dat, um die Registrierungsschlüssel zu erfassen.Inside our MSIX package we have User.dat and Userclass.dat files to capture the registry keys. Sie müssen User. DAT erstellen, wenn Sie Registrierungsschlüssel unter hkcu\software benötigen (wie z. b * . Registry. dat für HKLM\Software * ).You will need to create User.dat if you need registry keys under HKCU\Software* (just like Registry.dat is used for HKLM\Software*). Verwenden Sie userclass. dat, wenn Sie Schlüssel unter hkcu\sofware\classes benötigen * .Use Userclass.dat if you need keys under HKCU\Sofware\Classes*.

Es folgen die typischen Möglichkeiten zum Erstellen einer. dat-Datei:Here are the typical ways to create a .dat file:

  • Verwenden Sie regedit, um eine Datei zu erstellen.Use Regedit to create a file. Erstellen Sie eine Hive in regedit, und fügen Sie die erforderlichen Schlüssel ein.Create a hive in Regedit and insert the necessary keys. Wenn Sie mit der rechten Maustaste klicken, exportieren und speichern Sie die Hive-Datei.Than right click, export and save-as hive file. Stellen Sie sicher, dass Sie die Datei entweder User. dat oder userclass. dat benennen.Make sure to name the file either User.dat or Userclass.dat

  • Verwenden Sie eine API, um die erforderlichen Dateien zu erstellen.Use an API to create necessary files. Sie können die orsavehive -Funktion verwenden, um eine. dat-Datei zu speichern.You can use the ORSaveHive function to save a .dat file. Stellen Sie sicher, dass Sie die Datei "Ether User. dat" oder "userclass. dat" benennenMake sure to name the file ether User.dat or Userclass.dat

Nachdem Sie die erforderlichen Änderungen vorgenommen haben, können Sie das Änderungs Paket wie jedes andere msix-Paket erstellen.After you’ve made the necessary changes, you can create the modification package like any other MSIX package. Anschließend können Sie das Paket mit der aktuellen Bereitstellungs Einrichtung bereitstellen.Then you can deploy the package with the current deployment set-up. Wenn Sie die Haupt-APP neu starten, können Sie die Änderungen sehen, die das Änderungs Paket vorgenommen hat.When you relaunch your main app, you can see the changes that the modification package has made. Wenn Sie das Änderungs Paket entfernen, wird die Haupt-App ohne das Änderungs Paket in einen Status zurückversetzt.If you choose to remove the modification package, your main app will revert to a state without the modification package.

Ermitteln, welche Änderungs Pakete auf Ihrem Gerät installiert sindFind out what modification packages are installed on your device

Mithilfe von PowerShell können Sie installierte Änderungs Pakete mit dem folgenden Befehl anzeigen.Using PowerShell, you can see installed modification packages using the following command.

Get-AppPackage -PackageTypeFilter Optional

Änderungs Pakete unter Windows 10, Version 1809Modification packages on Windows 10, version 1809

Unter Windows 10, Version 1809, können Änderungs Pakete Konfigurationen enthalten, die in der Registrierung so festgelegt werden müssen, dass das Hauptpaket erwartungsgemäß ausgeführt wird.On Windows 10, version 1809, modification packages can include configurations needed to be set in the registry such that the main package will run as expected. Dies bedeutet, dass Ihre Hauptanwendung die Registrierung nutzt, um anzuzeigen, ob ein Plug-in vorhanden ist.Meaning your main application leverages the registry to view whether a plug-in exists. Wenn Sie das Hauptpaket und das Änderungspaket bereitstellen, wird in der Anwendung zur Laufzeit die virtuelle Registrierung (VREG) des Hauptpakets und des Änderungspakets angezeigt.When you deploy the main package and the modification package, at runtime the application will view the virtual registry (VREG) of both the main package and the modification package.

Beachten Sie, dass im Hauptpaket die virtuelle Registrierung für Folgendes verwendet werden kann:Note that your main package may be using the VREG to do the following things:

  • Anzeigen, wo die Datei (die dll) des Plug-Ins geladen werden soll.Viewing where to load the file (the DLL) of the plug-in. Wenn dies der Fall ist, stellen Sie sicher, dass die Datei Teil des Pakets ist.If this is the case, then ensure that the file is part of the package. Dadurch kann das Hauptpaket zur Laufzeit auf die Datei zugreifen.By doing this, main package is able to access the file at runtime.
  • Anzeigen, wo der Wert der VREG-Schlüssel angezeigt wird.Viewing where to see the value of the VREG keys. Im Hauptpaket wird möglicherweise nach einem Wert gesucht, der in der virtuellen Registrierung enthalten sein muss.Your main package may be looking for a value to exist in the VREG. Wenn Sie das Änderungspaket manuell oder mithilfe unseres Tools erstellen, stellen Sie sicher, dass der Wert richtig ist.When you create your modification package either by hand or using our tool, ensure that the value is correct.

Änderungs Pakete unter Windows 10, Version 1903 und höherModification packages on Windows 10, version 1903, and later

Die folgenden Funktionen wurden in Windows 10 Version 1903 hinzugefügt.The following features were added to Windows 10, version 1903.

Aktualisierung des ManifestsManifest update

Dem Manifest des MSIX-Änderungspakets wurde die Unterstützung für das folgende Element hinzugefügt.We’ve added support for the following element to the MSIX modification package’s manifest.

<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.To ensure that modification packages work in version 1903 or later, the modification package's manifest must include this element. Dies erfolgt automatisch, wenn Sie das MSIX-Änderungspaket mit der Januar-Version des MSIX Packaging Tools packen.This will be done for you if you package your MSIX modification package using the January release of the MSIX packaging tool. 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.If you've converted a package using our tool prior to the release, you can edit your existing package in our tool to add this new element. Wenn Benutzer das Änderungspaket installieren, werden sie außerdem darüber gewarnt, dass die Hauptanwendung möglicherweise durch das Paket geändert wird.In addition, if users install the modification package, they will be alerted that the package may modify the main application.

Wenn Sie ein Änderungs Paket verwenden, das vor Version 1903 erstellt wurde, muss das Paket Manifest bearbeitet werden, um das MaxVersionTested Attribut auf 10.0.18362.0 zu aktualisieren.If you are using a modification package that was created before version 1903, it is necessary to edit the package manifest to update the MaxVersionTested attribute to 10.0.18362.0.

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

Erstellen eines Änderungspakets mit dem MSIX Packaging ToolCreate a modification package using the MSIX Packaging Tool

Sie können mit dem MSIX Packaging Tool ein Änderungspaket erstellen:You can create a modification package with the MSIX Packaging Tool:

  • Geben Sie das Hauptpaket an.Specify the main package. Achten Sie darauf, dass die MSIX-Version des Hauptpakets auf dem Computer verfügbar ist, auf dem Sie die Konvertierung durchführen.Be sure to have the MSIX version of your main package available on your machine that you are converting on. Wenn dies nicht der Fall ist, werden Sie aufgefordert, die Informationen zum Herausgeber und der Hauptanwendung manuell einzugeben.If not than we will ask you to manually provide the publisher and main application information. Bei einigen Anpassungen ist es auch erforderlich, dass die Hauptanwendung auf dem Computer installiert ist.Also some customization require that your main application is installed on your machine. Änderungspaket mit MPTModification Package MPT

  • Ändern Sie das Paket nach der Konvertierung im Paket-Editor.Modify the package once it has gone through conversion using the package editor. In manchen Fällen macht es das Hauptpaket erforderlich, dass das Änderungspaket bestimmte Werte in der virtuellen Registrierung enthält.There may be a case where the main package requires your modification package to have certain values in their VREG. In diesen Fällen bearbeiten Sie das Paket entsprechend.This is where you would go and edit the package appropriately.

Erstellen eines Änderungspakets mithilfe von „MakeAppx.exe“Create a modification package using MakeAppx.exe

Sie können ein Änderungs Paket manuell erstellen, indem Sie das MakeAppX.exe Tool verwenden, das im Windows 10-SDK enthalten ist.You can create a modification package manually by using the MakeAppX.exe tool that is included in the Windows 10 SDK.

  • Geben Sie im Manifest das Hauptpaket an.In the manifest, specify the main package. Geben Sie den Herausgeber und den Namen des Hauptpakets ein.Include the publisher and the main package name.

    <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.Create Registry.dat, User.dat and Userclass.dat to create whatever registry keys are needed to load your modification package. Dies ist nur erforderlich, wenn in der Hauptanwendung benutzerdefinierte Registrierungsschlüssel angezeigt werden müssen.This is only required if you need your main application to view custom registry keys. 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.Remember that since everything is running inside a container, at runtime the main package and the modification package virtual registry will merge such that main package can view the modification packages virtual registry.

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.This process also supports file system plug-ins and customizations, as long as the executable of the main application is not in a virtual file system (VFS). Dadurch wird sichergestellt, dass das Hauptpaket das gesamte virtuelle Dateisystem des Hauptpakets und des Änderungspakets erhält.This is to ensure that the main package will get all the VFS of the main package and the modification package.