Créer des packages pour l’outil Package Deployer Dynamics 365

 

Date de publication : janvier 2017

S’applique à : Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Microsoft Dynamics CRM Package Deployer permet aux administrateurs de déployer des packages sur des instances Microsoft Dynamics 365 (Online) et Dynamics 365 (local). Un « package » peut être constitué de l'un ou de plusieurs des éléments suivants :

  • Un ou plusieurs fichiers de solution Dynamics 365.

  • Des fichiers plats ou un fichier de données de configuration exporté à partir de l'Outil de migration de configuration. Pour plus d’informations sur cet outil, voir TechNet : gérer vos données de configuration.

  • Du code personnalisé pouvant s'exécuter avant, pendant ou après le déploiement du package sur l'instance Dynamics 365.

  • Du contenu HTML spécifique au package qui peut s’afficher au début et à la fin du processus de déploiement. Il peut être utile pour fournir une description des solutions et des fichiers qui sont déployés dans le package.

Microsoft Dynamics 365 fournit un modèle Visual Studio pour créer ces packages qui peuvent être utilisés avec l’Outil de déploiement de packages pour les déployer sur une instance Dynamics 365.

Notes

Avec la sortie de CRM Online 2016 Update 1 et CRM 2016 Service Pack 1 (local), le modèle Visual Studio pour créer des packages Dynamics 365 a été amélioré pour ajouter la prise en charge de nouvelles fonctionnalités telles que le support du paramètre d'exécution ; l'importation de plusieurs fichiers de configuration de langues dans un seul package ; la possibilité de remplacer ou maintenir la personnalisation lors de la mise à jour des solutions ; et plus encore. Les projets de package existants peuvent être mis à jour pour bénéficier du nouvel ensemble de fonctionnalités en mettant à jour les assemblys Système de déploiement de packages de CRM à l'aide de NuGet vers la version 8.1 ou supérieure.

Contenu de la rubrique

Configuration requise

Créer un package

Déployer un package

Meilleures pratiques pour créer ou déployer des packages

Configuration requise

Créer un package

Suivez les cinq étapes ci-dessous pour créer un package :

Étape 1 : Créer un projet en utilisant le modèle

Étape 2 : Ajouter les fichiers au projet

Étape 3 : Mettre à jour les fichiers HTML : anglais et autres langues

Étape 4 : Spécifier les valeurs de configuration pour le package

Étape 5 : Définir un code personnalisé pour votre package

Étape 1 : Créer un projet en utilisant le modèle

  1. Démarrez Microsoft Visual Studio et créez un projet.

  2. Dans la boîte de dialogue Nouveau projet :

    1. Dans la liste des modèles installés, développez Visual C#, puis sélectionnez Modèles Dynamics 365 SDK.

    2. Vérifiez que .NET Framework 4.5.2 est sélectionné.

    3. Sélectionnez le package Dynamics 365.

    4. Spécifiez le nom et l’emplacement du projet, puis cliquez sur OK.

    Nouveau projet permettant de créer un package personnalisé

Étape 2 : Ajouter les fichiers au projet

  1. Dans le volet Explorateur de solutions, ajoutez vos solutions et fichiers dans le dossier PkgFolder.

  2. Pour chaque fichier ajouté au dossier PkgFolder, dans le volet Propriétés, définissez la valeur Copier dans le répertoire de sortie sur Toujours copier. Cette opération permet d’assurer que votre fichier est disponible dans le package généré.

Étape 3 : Mettre à jour les fichiers HTML : anglais et autres langues

  1. Dans l’explorateur de solutions, développez PkgFolder > Content > en-us. Vous trouverez deux dossiers appelés EndHTML et WelcomeHTML. Ces dossiers contiennent les fichiers HTML et les fichiers associés qui vous permettent d’afficher des informations à la fin et au début du processus de déploiement du package. Modifiez les fichiers dans le dossier HTML de ces dossiers pour ajouter des informations pour votre package.

  2. Vous pouvez également ajouter les fichiers HTML dans votre package dans d’autres langues afin que le contenu du HTML apparaisse dans la langue configurée dans les paramètres régionaux de l’ordinateur de l’utilisateur. Pour ce faire :

    1. Créez une copie du dossier en-us sous PkgFolder > Content.

    2. Renommez le dossier copié en fonction de la langue appropriée. Par exemple, pour l’espagnol, renommez-le es-ES.

    3. Modifiez le contenu des fichiers HTML pour ajouter le contenu espagnol.

Étape 4 : Spécifier les valeurs de configuration pour le package

  1. Définissez la configuration du package en ajoutant des informations sur votre package dans le fichier ImportConfig.xml disponible dans PkgFolder. Double-cliquez sur le fichier pour l’ouvrir et le modifier. Le tableau suivant répertorie des informations sur chaque paramètre et nœud du fichier de configuration.

    Paramètre/Nœud

    Description

    installsampledata

    True ou false. Si true, les exemples de données sont installés dans l’instance Dynamics 365. Il s’agit des mêmes exemples de données que ceux que vous pouvez installer à partir de la zone Paramètres > Gestion des données dans Dynamics 365.

    waitforsampledatatoinstall

    True ou false. Si true et si installsampledata est également défini sur true, attend l’installation des exemples de données pour déployer le package.

    Notes

    Veillez à configurer installsampledata sur vrai si vous définissez waitforsampledatatoinstall sur vrai.

    agentdesktopzipfile

    Nom du fichier zip à dézipper. Si vous spécifiez un nom de fichier .zip ici, un écran est ajouté durant le processus de déploiement du package. Il vous invite à sélectionner l’emplacement où dézipper le contenu du fichier.

    Cette méthode est courante pour créer des packages pour Unified Service Desk for Microsoft Dynamics 365. Pour plus d’informations sur Unified Service Desk, voir TechNet : guide d’administration de Unified Service Desk.

    agentdesktopexename

    Nom du fichier .exe ou .msi dans le fichier zip ou URL à appeler à la fin du processus de déploiement.

    Cette méthode est courante pour créer des packages pour Unified Service Desk.

    crmmigdataimportfile

    Nom de fichier du fichier de données de configuration (.zip) par défaut exporté à l’aide de Outil de migration de configuration.

    • Vous pouvez également importer une version localisée du fichier de données de configuration basé sur l'ID de paramètres régionaux (LCID) spécifié à l'aide des nouveaux paramètres d'exécution tout en exécutant le Package Deployer. Utilisez le nœud <cmtdatafile> (décrit plus loin) pour définir les versions localisées du fichier de données de configuration dans un package, puis utilisez la méthode OverrideConfigurationDataFileLanguage (expliquée ultérieurement) pour définir la logique pour importer le fichier de données de configuration selon l'ID de paramètres régionaux spécifié à l'aide des paramètres d'exécution. Vous ne pouvez pas importer plusieurs fichiers de données de configuration à l'aide d'un package à la fois.

    • Pour Dynamics 365 (local), si votre fichier de données de configuration contient des informations sur les utilisateurs, et les instances Dynamics 365 source et cible sont sur le même domaine Active Directory, les données utilisateur seront importées vers l'instance Dynamics 365 cible. Pour importer des données utilisateur dans une instance Dynamics 365 (local) dans un autre domaine, vous devez inclure le fichier de mappage d'utilisateur (.xml) généré avec l'Outil de migration de configuration dans votre projet, et le spécifier avec le fichier de données de configuration en utilisant l'attribut usermapfilename dans le nœud <cmtdatafile> expliqué plus tard. Les données utilisateur ne peuvent pas être importées dans des instances Dynamics 365 (en ligne).

    nœud <solutions>

    Contient un ensemble de nœuds <configsolutionfile> qui décrit les solutions à importer. L’ordre des solutions sous ce nœud indique l’ordre d’importation des solutions sur l'instance Dynamics 365 cible.

    nœud <configsolutionfile>

    Utilisez ce nœud sous le nœud <solutions> pour spécifier les solutions individuelles et les informations suivantes pour chaque solution à importer :

    • solutionpackagefilename : Spécifiez le nom de fichier .zip de la solution. Obligatoire.

    • overwriteunmanagedcustomizations : Indiquez si vous voulez remplacer toutes les personnalisations non gérées lors de l'importation d'une solution qui existe déjà dans l'instance Dynamics 365 cible. Cette information est facultative, et si vous ne spécifiez pas cet attribut, par défaut les personnalisations non gérées dans la solution existante sont conservées sur l'instance Dynamics 365 cible.

    • publishworkflowsandactivateplugins : Indiquez si vous voulez publier les workflows et activer des plug-ins dans l'instance Dynamics 365 cible après l'importation de la solution. Cette information est facultative, et si vous ne spécifiez cet attribut, par défaut les workflows sont publiés et les plug-ins sont activés lorsque la solution est importée dans l'instance Dynamics 365 cible.

    Vous pouvez ajouter plusieurs noms de fichier de solution dans un package en ajoutant le même nombre de nœuds <configsolutionfile>. Par exemple, si vous souhaitez importer trois fichiers de solution, ajoutez-les de la façon suivante :

    <solutions>
        <configsolutionfile solutionpackagefilename="SampleSolutionOne_1_0_managed.zip"
                            overwriteunmanagedcustomizations="false"
                            publishworkflowsandactivateplugins="true"/>
        <configsolutionfile solutionpackagefilename="SampleSolutionTwo_1_0_managed.zip"
                            overwriteunmanagedcustomizations="false"
                            publishworkflowsandactivateplugins="true"/>
        <configsolutionfile solutionpackagefilename="SampleSolutionThree_1_0_managed.zip" />
    </solutions>
    

    nœud <filestoimportnode>

    Contient un ensemble de nœuds <configimportfile> et <zipimportdetails> utilisés pour décrire respectivement des fichiers individuels et des fichiers zip à importer.

    nœud <configimportfile>

    Utilisez ce nœud sous le nœud <configimportfile> pour décrire un fichier à importer vers Dynamics 365. Vous pouvez ajouter plusieurs fichiers dans un package en ajoutant le même nombre de nœuds <configimportfile>.

    <filestoimport>
        <configimportfile filename="File.csv"
                filetype="CSV"
                associatedmap="FileMap"
                importtoentity="FileEntity"
                datadelimiter=""          fielddelimiter="comma"
                enableduplicatedetection="true"
                isfirstrowheader="true"           isrecordownerateam="false"
                owneruser=""
                waitforimporttocomplete="true" />
        <configimportfile filename="File.zip"
                filetype="ZIP"
                associatedmap="FileMapName"
                importtoentity="FileEntity"
                datadelimiter=""
                fielddelimiter="comma"
                enableduplicatedetection="true"
                isfirstrowheader="true"
                isrecordownerateam="false"
                owneruser=""
                waitforimporttocomplete="true"/>
    
    </filestoimport>
    

    Comporte les attributs suivants :

    Attribut

    Description

    filename

    Nom du fichier contenant les données d’importation. Si le fichier est un fichier .zip, un nœud <zipimportdetails> doit être présent avec un nœud <zipimportdetail> pour chaque fichier dans le fichier .zip.

    filetype

    Il peut s’agir de csv, xml ou de zip.

    associatedmap

    Nom du mappage de données de l’importation Dynamics 365 à utiliser avec ce fichier. Si cet élément est laissé vide, tente d’utiliser le mappage de données d’importation déterminé par le système pour ce fichier.

    importtoentity

    Il peut s’agir du nom du fichier .exe dans le fichier zip, d’une URL ou d’un fichier .msi pour fournir un lien à appeler à la fin du processus.

    datadelimiter

    Nom du séparateur de données utilisé dans le fichier d’importation. Les valeurs valides sont singlequote ou doublequotes.

    fielddelimiter

    Nom du séparateur de champs utilisé dans le fichier d’importation. Les valeurs valides sont comma, colon ou singlequote.

    enableduplicatedetection

    Indique si les règles de détections des doublons doivent être activées lors de l’importation des données. Les valeurs valides sont true ou false.

    isfirstrowheader

    Utilisé pour indiquer que la première ligne du fichier d’importation contient les noms des champs. Les valeurs valides sont true ou false.

    isrecordownerateam

    Indique si le propriétaire de l’enregistrement lors de l’importation doit être une équipe. Les valeurs valides sont true ou false.

    owneruser

    Indique l’ID utilisateur qui doit être propriétaire des enregistrements. La valeur par défaut est l’utilisateur actuellement connecté.

    waitforimporttocomplete

    Si true, le système attend la fin de l’importation avant de poursuivre. Si false, il met les tâches en files d’attente et continue.

    nœud <zipimportdetails>

    Ce nœud contient un ensemble de nœuds <zipimportdetail> qui décrivent les fichiers inclus dans un fichier zip utilisé lors de l’importation dans Dynamics 365.

    nœud <zipimportdetail>

    Utilisez ce nœud sous le nœud <zipimportdetails> pour fournir des informations sur un fichier individuel contenu dans un fichier .zip spécifié dans le nœud <configimportfile>.

    <filestoimport>
    ...
    ...
        <zipimportdetails>
            <zipimportdetail filename="subfile1.csv" filetype="csv" importtoentity="account" />
            <zipimportdetail filename="subfile2.csv" filetype="csv" importtoentity="contact" />
        </zipimportdetails>
    </filestoimport>
    

    Comporte les attributs suivants :

    Attribut

    Description

    filename

    Nom du fichier contenant les données d’importation.

    filetype

    Il peut s’agir de csv ou de xml.

    importtoentity

    Il peut s’agir du nom du fichier .exe dans le fichier zip, d’une URL ou d’un fichier .msi pour fournir un lien à appeler à la fin du processus.

    nœud <filesmapstoimport>

    Ce nœud contient un ensemble de nœuds <configmapimportfile> à importer. L’ordre des fichiers de mappage dans ce nœud indique l’ordre dans lequel ils sont importés. Pour plus d’informations sur le mappage de données, consultez Créer des mappages de données pour l’importation.

    nœud <configimportmapfile>

    Utilisez ce nœud sous le nœud <filesmapstoimport> pour fournir des informations sur un fichier de mappage individuel à importer dans Dynamics 365.

    <filesmapstoimport>
        <configimportmapfile filename="FileMap.xml" />
    </filesmapstoimport>
    

    <cmtdatafiles>

    Ce nœud contient divers nœuds <cmtdatafile> contenant la version localisée du fichier de données de configuration à importer.

    <cmtdatafile>

    Utilisez ce nœud sous le nœud <cmtdatafiles> pour spécifier les fichiers de données de configuration localisés avec l'ID de paramètres régionaux (obligatoire) et le fichier de mappage de données utilisateur (facultatif). Par exemple :

    <cmtdatafiles>
    <cmtdatafile filename="data_1033.zip" lcid="1033" usermapfilename="UserMap.xml" />
    <cmtdatafile filename="data_1041.zip" lcid="1041" usermapfilename="" />
    </cmtdatafiles>
    

    Vous pouvez définir la logique personnalisée dans la méthode OverrideConfigurationDataFileLanguage (expliquée ultérieurement) pour importer un fichier de données de configuration au lieu de celui par défaut (spécifié dans crmmigdataimportfile) selon la valeur de l'ID de paramètres régionaux (LCID) spécifiée à l'aide des paramètres d'exécution (expliqués ultérieurement).

  2. Cliquez sur Tout enregistrer.

    Ce qui suit représente le contenu d'un fichier ImportConfig.xml exemple.

    <?xml version="1.0" encoding="utf-16"?>
    <configdatastorage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                       installsampledata="true"
                       waitforsampledatatoinstall="true"
                       agentdesktopzipfile=""
                       agentdesktopexename=""
                       crmmigdataimportfile="data_1033.zip">
      <solutions>
        <configsolutionfile solutionpackagefilename="SampleSolutionOne_1_0_managed.zip"
                            overwriteunmanagedcustomizations="false"
                            publishworkflowsandactivateplugins="true"/>
        <configsolutionfile solutionpackagefilename="SampleSolutionTwo_1_0_managed.zip"
                            overwriteunmanagedcustomizations="false"
                            publishworkflowsandactivateplugins="true"/>
        <configsolutionfile solutionpackagefilename="SampleSolutionThree_1_0_managed.zip" />
      </solutions>
      <filestoimport>
        <configimportfile filename="SampleOption.csv"
                          filetype="CSV"
                          associatedmap="SampleOption"
                          importtoentity="sample_option"
                          datadelimiter=""
                          fielddelimiter="comma"
                          enableduplicatedetection="true"
                          isfirstrowheader="true"
                          isrecordownerateam="false"
                          owneruser=""
                          waitforimporttocomplete="false"/>
        <configimportfile filename="File.zip"
                          filetype="ZIP"
                          associatedmap="FileMapName"
                          importtoentity="FileEntity"
                          datadelimiter=""
                          fielddelimiter="comma"
                          enableduplicatedetection="true"
                          isfirstrowheader="true"
                          isrecordownerateam="false"
                          owneruser=""
                          waitforimporttocomplete="true"/>
        <zipimportdetails>
          <zipimportdetail filename="subfile1.csv"
                           filetype="csv"
                           importtoentity="account" />
          <zipimportdetail filename="subfile2.csv"
                           filetype="csv"
                           importtoentity="contact" />
        </zipimportdetails>
      </filestoimport>
      <filesmapstoimport>
        <configimportmapfile filename="SampleOption.xml" />
      </filesmapstoimport>
      <cmtdatafiles>
        <cmtdatafile filename="data_1033.zip"
                     lcid="1033"
                     usermapfilename="UserMap.xml" />
        <cmtdatafile filename="data_1041.zip"
                     lcid="1041"
                     usermapfilename="" />
      </cmtdatafiles>
    </configdatastorage>
    

Étape 5 : Définir un code personnalisé pour votre package

  1. Dans l’Explorateur de solutions, double-cliquez sur le fichier PackageTemplate.cs à la racine pour le modifier.

  2. Dans le fichier PackageTemplate.cs, vous pouvez :

    1. Entrer le code personnalisé à exécuter lorsque le package est initialisé dans la définition de la méthode de remplacement de InitializeCustomExtension.

      Cette méthode peut être utilisée pour permettre aux utilisateurs d'utiliser les paramètres d'exécution lors de l'exécution d'un package. En tant que développeur, vous pouvez ajouter le support de tout paramètre d'exécution à votre package en utilisant la propriété RuntimeSettings tant que vous avez le code pour la traiter selon les données saisies par l'utilisateur.

      Par exemple, l'exemple de code suivant active un paramètre d'exécution appelé SkipChecks pour le package qui a deux valeurs possibles : true ou false. L'exemple de code vérifie si l'utilisateur possède les paramètres d'exécution spécifiés en exécutant Système de déploiement de packages de CRM (à l'aide de la ligne de commande ou de PowerShell), puis traite les informations en conséquence. Si aucun paramètre d'exécution n'est spécifié par l'utilisateur lors de l'exécution du package, la valeur de la propriété RuntimeSettings sera null.

      public override void InitializeCustomExtension()
      {
            // Do nothing. 
      
            // Validate the state of the runtime settings object. 
            if (RuntimeSettings != null)
            {
                  PackageLog.Log(string.Format("Runtime Settings populated.  Count = {0}", RuntimeSettings.Count)); 
                  foreach (var setting in RuntimeSettings)
                  {
                        PackageLog.Log(string.Format("Key={0} | Value={1}", setting.Key, setting.Value.ToString()));
                  }
      
                  // Check to see if skip checks is present. 
                  if ( RuntimeSettings.ContainsKey("SkipChecks") )
                  {
                        bool bSkipChecks = false;
                        if (bool.TryParse((string)RuntimeSettings["SkipChecks"], out bSkipChecks))
                        OverrideDataImportSafetyChecks = bSkipChecks; 
                  }
            }
            else
                  PackageLog.Log("Runtime Settings not populated");
      }
      

      Cela permet à l'administrateur d'utiliser la ligne de commande ou l’applet de commande Import-CrmPackage pour spécifier s'il faut ignorer les contrôles de sécurité lors de l'exécution de Outil de déploiement de packages pour importer le package. Informations complémentaires : TechNet : Déployer les packages à l'aide de CRM Package Deployer et Windows PowerShell

    2. Entrez le code personnalisé à exécuter avant l'importation des solutions dans la définition de la méthode de remplacement de PreSolutionImport pour spécifier s'il faut conserver ou remplacer les personnalisations lors de la mise à jour de la solution spécifiée dans une instance Dynamics 365 cible, et si vous souhaitez activer automatiquement des plug-ins et des workflows.

    3. Utilisez la définition de la méthode de remplacement de RunSolutionUpgradeMigrationStep pour effectuer la transformation des données ou la mise à niveau entre deux versions d'une solution. Cette méthode est appelée uniquement si la solution que vous importez est déjà présente dans l'instance Dynamics 365 cible.

      Cette fonction requiert les paramètres suivants :

      Paramètre

      Description

      solutionName

      Nom de la solution

      oldVersion

      Numéro de version de l’ancienne solution

      newVersion

      Numéro de version de la nouvelle solution

      oldSolutionId

      GUID de l’ancienne solution.

      newSolutionId

      GUID de la nouvelle solution.

    4. Entrez le code personnalisé à exécuter avant la fin de l'importation de la solution dans la définition de remplacement de la méthode BeforeImportStage. Les exemples de données et certains fichiers plats pour des solutions spécifiées dans le fichier ImportConfig.xml sont importés avant la fin de l'importation de la solution.

    5. Remplacez la langue actuellement sélectionnée pour l'importation des données de configuration en utilisant la définition de la méthode de remplacement de OverrideConfigurationDataFileLanguage. Si l'ID de paramètres régionaux (LCID) de la langue spécifiée est introuvable dans la liste des langues disponibles dans le package, le fichier de données par défaut est importé.

      Vous spécifiez les langues disponibles pour les données de configuration dans le nœud <cmtdatafiles> dans le fichier ImportConfig.xml. Le fichier d'importation de données de configuration par défaut est spécifié dans l'attribut crmmigdataimportfile dans le fichier ImportConfig.xml.

      Ignorer les contrôles de données (OverrideDataImportSafetyChecks = true) peut être efficace ici si vous êtes certain que l'instance de Dynamics 365 cible ne contient aucune donnée.

    6. Entrez le code personnalisé à exécuter après l'importation de la solution dans la définition de remplacement de la méthode AfterPrimaryImport. Les fichiers plats restants qui n'ont pas été importés précédemment, avant le début de l'importation de la solution, sont importés maintenant.

    7. Modifiez le nom par défaut de votre dossier de package de PkgFolder vers le nom de package souhaité. Pour cela, renommez le dossier PkgFolder dans l’Explorateur de solutions, puis modifiez la valeur renvoyée sous la propriété GetImportPackageDataFolderName.

      public override string GetImportPackageDataFolderName
      {
          get
          {
              // WARNING this value directly correlates to the folder name in the Solution Explorer where the ImportConfig.xml and sub content is located. 
              // Changing this name requires that you also change the correlating name in the Solution Explorer 
              return "PkgFolder";
          }
      }
      
    8. Modifier le nom du package en modifiant la valeur renvoyée sous la propriété GetNameOfImport.

      public override string GetNameOfImport(bool plural)
      {
           return "Package Short Name";
      }
      

      Il s’agit du nom de votre package qui apparaîtra sur la page de sélection de package dans l’Assistant Système de déploiement de packages de CRM.

    9. Modifier la description du package en modifiant la valeur renvoyée sous la propriété GetImportPackageDescriptionText.

      public override string GetImportPackageDescriptionText
      {
             get { return "Package Description"; }
      }
      

      Il s’agit de la description du package qui apparaîtra à côté du nom du package sur la page de sélection du package dans l’Assistant Package Deployer.

    10. Modifier le nom long du package en modifiant la valeur renvoyée sous la propriété GetLongNameOfImport.

      public override string GetLongNameOfImport
      {
           get { return "Package Long Name"; }
      }
      

      Le nom long du package apparaît sur la page suivante après que vous ayez sélectionné le package à installer.

  3. En outre, la fonctionnalité et les variables suivantes sont disponibles pour le package :

    Nom

    Type

    Description

    CreateProgressItem

    Fonction

    Utilisé pour créer un élément de progression dans l’interface utilisateur.

    RaiseUpdateEvent

    Fonction

    Utilisé pour mettre à jour la progression créée par l’appel à CreateProgressItem.

    ProgressPanelItemStatus est une énumération :

    public enum ProgressPanelItemStatus
    {
        Working = 0,
        Complete = 1,
        Failed = 2,
        Warning = 3,
        Unknown = 4
    }

    RaiseFailEvent

    Fonction

    Utilisé pour faire échouer l’importation d’état actuel avec un message d’exception.

    IsRoleAssoicatedWithTeam

    Fonction

    Utilisé pour déterminer si un rôle est associé à une équipe spécifiée.

    IsWorkflowActive

    Fonction

    Utilisé pour déterminer si un workflow spécifié est actif.

    PackageLog

    Pointeur de classe

    Il s’agit d’un pointeur vers l’interface d’enregistrement initialisée du package. Cette interface est utilisée par un package pour enregistrer des messages et des exceptions dans le fichier journal du package.

    RootControlDispatcher

    Propriété

    Il s’agit d’une interface de distributeur utilisée pour permettre à votre contrôle d’afficher sa propre interface utilisateur pendant le déploiement du package. Utilisez cette interface pour envelopper tous les éléments ou commandes de l’interface utilisateur. Il est important de vérifier si cette variable comporte des valeurs Null avant de l’utiliser, car elle peut être définie ou non sur une valeur.

    CrmSvc

    Propriété

    Il s’agit d’un pointeur vers la classe CrmServiceClient qui permet à un package de traiter Dynamics 365 depuis l’intérieur du package. Utilisez cette classe pour exécuter Dynamics 365 SDK et d'autres actions dans les méthodes remplacées.

    DataImportBypass

    Propriété

    Utilisez cette option pour indiquer si Système de déploiement de packages de CRM doit ignorer toutes les opérations d'importation de données telles que l'importation d'exemples de données Dynamics 365, les données du fichier plat, et les données exportées depuis Outil de migration de configuration. Choisissez Vrai ou Faux. La valeur par défaut est false.

    OverrideDataImportSafetyChecks

    Propriété

    Utilisez cette option pour indiquer si Système de déploiement de packages de CRM doit ignorer certains de ses contrôles de sécurité, afin d'améliorer les performances d'importation. Spécifiez true ou false. La valeur par défaut est false.

    Vous devez définir ce paramètre sur true uniquement si l'instance Dynamics 365 cible ne contient aucune donnée.

  4. Enregistrez votre projet, puis générez-le (Générer > Générer la solution) pour créer le package. Votre package inclut les fichiers suivants dans le dossier <Project>\Bin\Debug.

    • Dossier <PackageName> : Le nom du dossier est identique à celui que vous avez modifié pour le nom de dossier du package à l'étape 2.g de cette section (étape 5 : Définir le code personnalisé de votre package). Ce dossier contient les solutions, les données de configuration, les fichiers plats et le contenu de votre package.

    • <PackageName>.dll : l'assembly contient le code personnalisé de votre package. Par défaut, le nom de l'assembly est le même que celui de votre projet Visual Studio.

    L'étape suivante consiste à déployer votre package.

Déployer un package

Après avoir créé un package, vous pouvez le déployer sur l’instance Dynamics 365 à l’aide de Outil de déploiement de packages ou de Windows PowerShell. Pour obtenir des informations détaillées, voir TechNet : déployer les packages avec CRM Package Deployer et Windows PowerShell.

Meilleures pratiques pour créer ou déployer des packages

Lors de la création de packages, les développeurs doivent garantir que des assemblys de package sont signés.

Lors du déploiement des packages, les administrateurs de Dynamics 365 doivent :

  • Exiger un assembly de package signé afin de pouvoir suivre l’assembly depuis sa source.

  • Tester le package sur une instance de préproduction (de préférence une image miroir de l’instance de production) avant de l’exécuter sur une instance de production.

  • Sauvegarder l’instance de production avant de déployer le package.

Voir aussi

Nouveautés pour les développeurs : Microsoft Dynamics 365

Microsoft Dynamics 365

© 2017 Microsoft. Tous droits réservés. Copyright