Personnaliser vos applications d’entreprise avec des packages de modificationCustomize your Enterprise apps with modification packages

La possibilité de personnaliser l’expérience d’une application est importante, en particulier pour les entreprises.The ability to customize an application's experience is important, especially for enterprises. Nous avons parlé aux professionnels de l’informatique et nous savons que la personnalisation des applications pour répondre aux besoins de l’utilisateur est essentielle à l’effort de migration vers Windows 10.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. Lorsque vous personnalisez des applications empaquetées à l’aide de MSI, il est bien entendu que les professionnels de l’informatique doivent acquérir le package auprès des développeurs et recréer un package du programme d’installation avec la personnalisation en fonction de leurs besoins.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. Il s’agit d’un effort coûteux pour les entreprises.This is a costly effort for enterprises. Pour aller plus tard, nous voulons découpler la personnalisation et l’application principale afin que le empaquetage ne soit plus nécessaire.Moving forward, we want to decouple the customization and the main application so that re-packaging is no longer needed. Ainsi, les entreprises bénéficient des dernières mises à jour des développeurs tout en gardant le contrôle de leurs personnalisations.This ensures that enterprises get the latest updates from developers while still maintaining control of their customizations.

Dans Windows 10, version 1809, nous avons introduit un nouveau type de package MSIX appelé « package de modification».In Windows 10, version 1809, we introduced a new type of MSIX package called a modification package. Les packages de modification sont des packages MSIX qui stockent des personnalisations.Modification packages are MSIX packages that store customizations. Les packages de modification peuvent également être des plug-ins/modules complémentaires qui peuvent ne pas avoir de point d’activation.Modification packages can also be plugins/add-ons that may not have an activation point. Les professionnels de l’informatique peuvent utiliser cette fonctionnalité pour modifier de manière flexible les conteneurs MSIX afin que les applications soient superposées par les personnalisations de l’entreprise.IT professionals can use this feature to flexibly change MSIX containers so that applications are overlaid by their enterprise's customizations.

FonctionnementHow it works

Les packages de modification sont conçus pour les entreprises qui ne possèdent pas le code de l’application et qui disposent uniquement du programme d’installation.Modification packages are designed for enterprises that do not own the code of the application and only have the installer. Vous pouvez créer un package de modification à l’aide de la dernière version de l’outil d’empaquetage MSIX (pour Windows 10 version 1809 ou ultérieure).You can create a modification package by using the latest version of the MSIX packaging tool (for Windows 10 version 1809 or later). Si vous disposez du code pour l’application, vous pouvez également créer une extension d’application.If you have the code for the application, you can alternatively create an app extension.

Si vous souhaitez créer un package de modification qui a une liaison stricte à l’application principale, vous pouvez déclarer l’application principale en tant que dépendance dans le manifeste du package de modification.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>

L’exemple suivant montre comment spécifier un certificat ou un serveur de publication différent.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>

Il s’agit d’une configuration simple si la relation entre le package de modification et le package principal est un-à-un.This is a simple configuration if the relationship between the modification package and main package is one-to-one. Les personnalisations typiques nécessitent souvent des clés de Registre sous HKEY_CURRENT_USER ou HKEY_CURRENT_USERCLASS.Typical customizations often require registry keys under HKEY_CURRENT_USER or HKEY_CURRENT_USERCLASS. Dans notre package MSIX, nous avons des fichiers User. dat et userclass. dat pour capturer les clés de registre.Inside our MSIX package we have User.dat and Userclass.dat files to capture the registry keys. Vous devrez créer User. dat si vous avez besoin de clés de Registre sous HKCU\Software * (tout comme Registry. dat est utilisé pour 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*). Utilisez userclass. dat si vous avez besoin de clés sous HKCU\Sofware\Classes * .Use Userclass.dat if you need keys under HKCU\Sofware\Classes*.

Voici les méthodes classiques pour créer un fichier. dat :Here are the typical ways to create a .dat file:

  • Utilisez regedit pour créer un fichier.Use Regedit to create a file. Créez une ruche dans Regedit et insérez les clés nécessaires.Create a hive in Regedit and insert the necessary keys. Que le clic droit, exporter et enregistrer sous un fichier Hive.Than right click, export and save-as hive file. Veillez à nommer le fichier User. dat ou userclass. datMake sure to name the file either User.dat or Userclass.dat

  • Utilisez une API pour créer les fichiers nécessaires.Use an API to create necessary files. Vous pouvez utiliser la fonction ORSaveHive pour enregistrer un fichier. dat.You can use the ORSaveHive function to save a .dat file. Veillez à nommer le fichier Ether User. dat ou userclass. datMake sure to name the file ether User.dat or Userclass.dat

Une fois que vous avez apporté les modifications nécessaires, vous pouvez créer le package de modification comme n’importe quel autre package MSIX.After you’ve made the necessary changes, you can create the modification package like any other MSIX package. Vous pouvez ensuite déployer le package avec la configuration de déploiement actuelle.Then you can deploy the package with the current deployment set-up. Lorsque vous relancez votre application principale, vous pouvez voir les modifications apportées par le package de modification.When you relaunch your main app, you can see the changes that the modification package has made. Si vous choisissez de supprimer le package de modification, votre application principale reviendra à un État sans le package de modification.If you choose to remove the modification package, your main app will revert to a state without the modification package.

Découvrez les packages de modification installés sur votre appareilFind out what modification packages are installed on your device

À l’aide de PowerShell, vous pouvez voir les packages de modification installés à l’aide de la commande suivante.Using PowerShell, you can see installed modification packages using the following command.

Get-AppPackage -PackageTypeFilter Optional

Packages de modification sur Windows 10, version 1809Modification packages on Windows 10, version 1809

Sur Windows 10, version 1809, les packages de modification peuvent inclure des configurations qui doivent être définies dans le registre, de sorte que le package principal s’exécute comme prévu.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. Cela signifie que votre application principale tire parti du Registre pour voir si un plug-in existe.Meaning your main application leverages the registry to view whether a plug-in exists. Lorsque vous déployez le package principal et le package de modification, l’application voit lors de l’exécution le Registre virtuel à la fois du package principal et du package de modification.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.

Notez que votre package principal peut utiliser le Registre virtuel pour effectuer les opérations suivantes :Note that your main package may be using the VREG to do the following things:

  • Affichage de l’emplacement où charger le fichier (la DLL) du plug-in.Viewing where to load the file (the DLL) of the plug-in. Si tel est le cas, vérifiez que le fichier fait partie du package.If this is the case, then ensure that the file is part of the package. En procédant ainsi, le package principal est en mesure d’accéder au fichier lors de l’exécution.By doing this, main package is able to access the file at runtime.
  • Affichage de l’emplacement où voir la valeur des clés de Registre virtuel.Viewing where to see the value of the VREG keys. Votre package principal peut rechercher une valeur qui existe dans le Registre virtuel.Your main package may be looking for a value to exist in the VREG. Lorsque vous créez votre package de modification, manuellement ou avec notre outil, assurez-vous que la valeur est correcte.When you create your modification package either by hand or using our tool, ensure that the value is correct.

Packages de modification sur Windows 10, version 1903 et versions ultérieuresModification packages on Windows 10, version 1903, and later

Les fonctionnalités suivantes ont été ajoutées à Windows 10, version 1903.The following features were added to Windows 10, version 1903.

Mise à jour du manifesteManifest update

Nous avons ajouté la prise en charge de l’élément suivant au manifeste du package de modification MSIX.We’ve added support for the following element to the MSIX modification package’s manifest.

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

Pour garantir le fonctionnement des packages de modification dans la version 1903 ou ultérieure, le manifeste du package de modification doit inclure cet élément.To ensure that modification packages work in version 1903 or later, the modification package's manifest must include this element. Cette opération est effectuée pour vous si vous empaquetez votre package de modification MSIX à l’aide de la version de janvier de l’outil MSIX Packaging Tool.This will be done for you if you package your MSIX modification package using the January release of the MSIX packaging tool. Si vous avez converti un package à l’aide de notre outil avant cette version, vous pouvez modifier votre package existant dans notre outil pour ajouter ce nouvel élément.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. De plus, si des utilisateurs installent le package de modification, ils sont informés que le package peut modifier l’application principale.In addition, if users install the modification package, they will be alerted that the package may modify the main application.

Si vous utilisez un package de modification qui a été créé avant la version 1903, vous devez modifier le manifeste du package pour mettre à jour l' MaxVersionTested attribut vers 10.0.18362.0.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" />

Créer un package de modification à l’aide de l’outil MSIX Packaging ToolCreate a modification package using the MSIX Packaging Tool

Vous pouvez créer un package de modification avec l’outil MSIX Packaging Tool :You can create a modification package with the MSIX Packaging Tool:

  • Spécifiez le package principal.Specify the main package. Veillez à disposer de la version MSIX de votre package principal sur l’ordinateur sur lequel vous effectuez la conversion.Be sure to have the MSIX version of your main package available on your machine that you are converting on. Dans le cas contraire, nous vous demanderons de fournir manuellement les informations sur l’éditeur et l’application principale.If not than we will ask you to manually provide the publisher and main application information. Par ailleurs, une personnalisation nécessite que votre application principale soit installée sur votre ordinateur.Also some customization require that your main application is installed on your machine. Outil MSIX Packaging Tool pour créer un package de modificationModification Package MPT

  • Modifiez le package une fois qu’il a été converti à l’aide de l’éditeur de package.Modify the package once it has gone through conversion using the package editor. Il peut arriver que le package principal exige que votre package de modification comporte certaines valeurs dans le Registre virtuel.There may be a case where the main package requires your modification package to have certain values in their VREG. C’est là où vous allez modifier le package de façon appropriée.This is where you would go and edit the package appropriately.

Créer un package de modification à l’aide de MakeAppx.exeCreate a modification package using MakeAppx.exe

Vous pouvez créer un package de modification manuellement à l’aide de l’outil MakeAppX.exe inclus dans le kit de développement logiciel (SDK) Windows 10.You can create a modification package manually by using the MakeAppX.exe tool that is included in the Windows 10 SDK.

  • Dans le manifeste, spécifiez le package principal.In the manifest, specify the main package. Ajoutez l’éditeur et le nom du package principal.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>
    
  • Créez Registry.dat, User.dat et Userclass.dat afin de créer les clés de Registre nécessaires pour charger votre package de modification.Create Registry.dat, User.dat and Userclass.dat to create whatever registry keys are needed to load your modification package. Cette opération n’est requise que si vous avez besoin que votre application principale voit les clés de Registre personnalisées.This is only required if you need your main application to view custom registry keys. N’oubliez pas que, dans la mesure où tout est exécuté à l’intérieur d’un conteneur, le Registre virtuel du package principal et du package de modification fusionnent lors de l’exécution afin que le package principal puisse voir le Registre virtuel des packages de modification.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.

Ce processus prend également en charge les personnalisations et plug-ins de système de fichiers, tant que l’exécutable de l’application principale ne se trouve pas dans un système de fichiers virtuel.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). Ceci a pour but de garantir que le package principal obtiendra tous les systèmes de fichiers virtuels du package principal et du package de modification.This is to ensure that the main package will get all the VFS of the main package and the modification package.