Packages facultatifs avec code exécutable

Les packages facultatifs avec du code exécutable sont utiles pour diviser une application volumineuse ou complexe, ou pour ajouter à une application qui a déjà été publiée. Avec Visual Studio 2017, version 15.7 et .NET Native 2.1, vous pouvez charger un code exécutable à partir des packages facultatifs en C++ et C#.

Prérequis

  • Visual Studio 2019 ou Visual Studio 2017 (version 15,7 ou ultérieure)
  • Windows 10, version 1709 ou ultérieure
  • Windows 10, version 1709 du kit de développement logiciel (SDK) ou version ultérieure

Pour obtenir les derniers outils de développement, consultez téléchargements et outils pour Windows 10.

Notes

Pour soumettre une application qui utilise des packages facultatifs et/ou des ensembles associés au magasin, vous devez disposer de l’autorisation. Des packages facultatifs et des jeux associés peuvent être utilisés pour des applications métier ou d’entreprise sans l’autorisation de l’espace partenaires s’ils ne sont pas envoyés au magasin. pour obtenir l’autorisation de soumettre une application qui utilise des packages facultatifs et des jeux associés, consultez Windows le support technique du développeur .

Notes

Les packages facultatifs contenant du code exécutable doivent faire partie d’un ensemble associé. Vous ne serez pas en mesure d’exécuter du code à partir d’un package facultatif, sauf s’il fait partie d’un ensemble associé.

Packages facultatifs C++ avec code exécutable

Pour charger du code à partir d’un package facultatif C++, consultez le référentiel OptionalPackageSample sur GitHub. Le OptionalPackageDLL montre comment créer un projet avec du code qui peut être exécuté à partir du package principal. Le projet MyMainApp montre comment charger du code à partir du fichier OptionalPackageDLL.dll.

Packages facultatifs C# avec code exécutable

Pour commencer à créer un package de code facultatif en C#, suivez les étapes ci-dessous pour configurer votre solution :

  1. créez une application UWP avec la version minimale définie sur le kit de développement logiciel (SDK) Windows 10 Fall Creators Update (Build 16299) ou version ultérieure.

  2. ajoutez un nouveau projet de Package de Code facultatif (universel Windows) à la solution. Vérifiez que la version minimale et la version cible correspondent à celles de votre application principale.

  3. Si vous envisagez de soumettre vos applications au Windows Store, cliquez avec le bouton droit sur les deux projets, puis sélectionnez Store-> associer l’application au Store...

  4. Ouvrez le Package.appxmanifest fichier de l’application principale et recherchez la Identity Name valeur. Prenez note de cette valeur pour l’étape suivante.

  5. Ouvrez le fichier de package d’application facultatif Package.appxmanifest et recherchez la uap3:MainAppPackageDependency Name valeur. Mettez à jour la uap3:MainAppPackageDependency Name valeur pour qu’elle corresponde à la Identity Name valeur du package d’application principal de l’étape précédente.

    Voici un exemple de l Identity 'de l’de l’application principale Package.appxmanifest .

    <Identity Name="12345.MainAppProject" Publisher="CN=PublisherName" Version="1.0.0.0" />
    

    Le package d’application facultatif uap3:MainPackageDependency doit être mis à jour pour correspondre à l’application principale de Identity .

    <uap3:MainPackageDependency Name="12345.MainAppProjectTest" />
    
  6. Ajoutez un Bundle.mapping.txt fichier à l’application principale. Suivez les étapes de la section ensembles associés pour créer un ensemble associé contenant les deux applications.

  7. Générez le projet de package facultatif, puis accédez au dossier de référence du package dans la sortie de la build trouvée à l’adresse ..\[PathToOptionalPackageProject]\bin\[architecture]\[configuration]\Reference . Notez que vous pouvez choisir n’importe quelle architecture dans le chemin d’accès au dossier de référence, car le .winmd fichier (étape 8) est indépendant de l’architecture.

  8. Ajoutez une référence à partir du projet d’application principale dans le fichier qui se .winmd trouve dans ce dossier. Chaque fois que vous modifiez la surface d’exposition de l’API dans le projet de package facultatif, ce .winmd fichier doit être mis à jour. Cette référence fournit le projet d’application principal avec les informations nécessaires à la compilation.

  9. dans le projet d’application principal, accédez aux propriétés de génération du projet, puis sélectionnez compiler avec .NET Native chaîne d’outils. actuellement, seul le débogage dans .NET Native est pris en charge pour la création facultative de packages de code en C#. Accédez aux propriétés de débogage du projet et sélectionnez déployer des packages facultatifs. Cela permet de s’assurer que les deux packages sont synchronisés chaque fois que vous déployez le projet d’application principal.

Une fois que vous avez terminé ces étapes, vous pouvez ajouter du code au projet de package facultatif comme s’il s’agissait d’un projet de composant WinRT géré. Pour accéder au code dans le projet d’application principal, appelez les méthodes publiques exposées dans le projet de package facultatif.