Déployer des packages avec Dynamics CRM Package Deployer et Windows PowerShell
Date de publication : février 2017
S’applique à : Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Notes
Les informations fournies ici concernent les versions de Dynamics 365 précédant Dynamics 365 (online), version 9.0. Pour obtenir la dernière documentation, voir Déployer des packages avec Dynamics CRM Package Deployer et Windows PowerShell.
Microsoft Dynamics CRM Package Deployer permet aux administrateurs de déployer des packages sur des instances Dynamics 365 (local) et Microsoft Dynamics 365 (Online). 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 des fichiers de données exportés à partir de l'Outil de migration de configuration. Pour plus d'informations sur l'Outil de migration de configuration, voir Gestion des données de configuration.
Du code personnalisé pouvant s'exécuter pendant ou après le déploiement du package sur Microsoft Dynamics 365.
Du contenu HTML spécifique au package qui peut s'afficher au début et à la fin du processus de déploiement du package. Il peut être utile pour fournir une description des solutions et des fichiers qui sont déployés dans le package.
Les développeurs créent des packages en utilisant le modèle de déploiement de package de Microsoft Visual Studio.Pour plus d'informations :MSDN : créer des packages pour Package Deployer CRM
Une fois le package créé, vous pouvez le déployer en exécutant Système de déploiement de packages de CRM ou en utilisant des applets de commande Windows PowerShell pour l'outil.
Important
Avant d'importer et d'exécuter un package dans une organisation de production, testez le package sur une image miroir hors production de l'organisation de production.
Sauvegardez toujours l'organisation de production avant de déployer un package.
Contenu de la rubrique
Déploiement des packages avec Outil de déploiement de packages
Utiliser Windows PowerShell pour déployer des packages
Résoudre les problèmes de déploiement de package à l'aide des fichiers journaux
Meilleures pratiques pour le déploiement de packages
Déploiement des packages avec Outil de déploiement de packages
Vous pouvez utiliser Outil de déploiement de packages (packagedeployer.exe) pour déployer de la manière suivante :
Utiliser Outil de déploiement de packages pour déployer des packages
Utiliser Outil de déploiement de packages sur la ligne de commande
Utiliser Outil de déploiement de packages pour déployer des packages
L'Outil de déploiement de packages ne peut traiter qu'un package à la fois. Toutefois, il permet aux utilisateurs de sélectionner un package à déployer parmi plusieurs packages disponibles dans le répertoire Outil de déploiement de packages. Certains écrans et actions de l'outil diffèrent selon la définition du package. Il est inutile d'installer l'Outil de déploiement de packages. Il suffit de le télécharger et de l'exécuter.
Procurez-vous le package à déployer. Un package est un ensemble de fichiers et de dossiers créé dans le dossier de projets de Visual Studio (<Project>\Bin\Debug) lorsque vous créez votre projet de package dans Visual Studio. Copiez les éléments suivants à partir du dossier Debug de votre projet :
Dossier <PackageName> : ce dossier contient les solutions, la configuration d'importation et le contenu de votre package.
<PackageName>.dll : l'assembly contient le code de votre package. Par défaut, le nom de l'assembly est le même que celui de votre projet Visual Studio.
Pour obtenir des informations détaillées sur la création d'un package à l'aide de Visual Studio, voir MSDN : créer un package pour l'outil Package Deployer.
Pour cette rubrique, supposons que le dossier et l'assembly de package du dossier Debug du projet Visual Studio (<Project>\Bin\Debug) sont copiés dans le dossier c:\DeployPackage.
Téléchargez le SDK Microsoft Dynamics CRM. Exécutez ensuite le fichier exécutable téléchargé pour extraire le contenu du package.
Accédez au dossier SDK\Tools\PackageDeployer, puis copiez le dossier de package et l'assembly c:\DeployPackage vers le dossier SDK\Tools\PackageDeployer.
Une fois les fichiers copiés, exécutez l'outil en double-cliquant sur le fichier PackageDeployer.exe dans le dossier SDK\Tools\PackageDeployer.
Cliquez sur Continuer dans l'écran principal de l'outil.
Dans l'écran Se connecter à Microsoft Dynamics 365, fournissez les informations d'authentification pour se connecter au serveur Dynamics 365 sur lequel vous voulez déployer le package. S'il y a plusieurs organisations et que vous souhaitez sélectionner l'organisation où le package sera déployé, activez la case à cocher Toujours afficher la liste des organisations disponibles. Cliquez sur Connexion.
Si vous avez plusieurs organisations sur votre serveur Dynamics 365, sélectionnez l'organisation Dynamics 365 à laquelle vous souhaitez vous connecter.
Sélectionnez le package à déployer, puis cliquez sur Suivant.
Suivez les instructions des écrans successifs pour effectuer le déploiement de votre package.
Les écrans qui s'affichent sont fonction de la définition du package sélectionné pour le déploiement. Pour un déploiement de bout en bout du package qui utilise l'Outil de déploiement de packages, voir la rubrique concernant le déploiement des packages Unified Service Desk : Déployer des exemples d'applications Unified Service Desk sur le serveur CRM à l'aide du Package Deployer
Utiliser Outil de déploiement de packages sur la ligne de commande
Les administrateurs et les personnalisateurs de système peuvent transmettre des paramètres, tels que le code de la langue régionale, à packagedeployer.exe à partir de la ligne de commande. Ces paramètres peuvent être configurés en exécutant Outil de déploiement de packages à la ligne de commande.
Notes
Cette fonctionnalité a d'abord été présentée dans Mise à jour 0.1 de Microsoft Dynamics CRM Online 2016.
Les paramètres disponibles sont dans ce tableau.
Paramètre |
Description |
Valeur par défaut |
---|---|---|
RuntimePackageSettings |
Demande à packagedeployer.exe d'accepter les paramètres de ligne de commande comme LCID et SkipChecks. |
Non applicable |
LCID=localeID |
Spécifie l'ID de langue, comme 1033 pour l'Anglais-États-Unis ou 1036 pour le Français-France, à partir des ID de paramètres régionaux du package. Si cet élément n'est pas spécifié, la langue par défaut est utilisée. |
Utiliser la langue par défaut |
SkipChecks=true/false |
Utilisez ce paramètre uniquement lorsque l'environnement cible ne contient pas d'autres solutions ou personnalisations. Lorsque le paramètre est défini sur vrai, l'importation de la solution ignorera certains contrôles de sécurité, qui peuvent améliorer les performances de l'importation. |
Faux |
L'exemple suivant demande à Système de déploiement de packages de CRM d'ignorer certains contrôles de sécurité et définit la langue à importer sur le polonais.
packagedeployer.exe /Settings:"SkipChecks=true|lcid=1045"
Notes
Utilisez le caractère | pour séparer les paramètres lorsque vous exécutez packagedeployer.exe à la ligne de commande avec plusieurs paramètres.
Pour plus d'informations sur les paramètres et les valeurs pouvant être transmis à packagedeployer.exe, voir MSDN : créer des packages pour le Package Deployer CRM.
Utiliser Windows PowerShell pour déployer des packages
L'Outil de déploiement de packages prend également en charge Windows PowerShell pour le déploiement de packages.
Appliquez la procédure suivante pour utiliser les applets de commande PowerShell pour déployer des packages :
Configuration requise
Enregistrer les applets de commande
Utiliser l'applet de commande pour récupérer des packages
Utiliser l'applet de commande pour vous connecter à l'instance de Dynamics 365
Utiliser l'applet de commande pour déployer des packages
Accéder à une aide détaillée concernant les applets de commande
Configuration requise
Voici les conditions requises pour utiliser les applets de commande de PowerShell :
PowerShell 3.0 ou ultérieur est nécessaire pour déployer un package à l'aide de PowerShell. Pour vérifier votre version de PowerShell, exécutez une fenêtre PowerShell, puis exécutez la commande suivante : $Host.
Définissez la stratégie d'exécution pour exécuter les scripts PowerShell signés. Pour cela, exécutez une fenêtre PowerShell en tant qu'administrateur, puis exécutez la commande suivante : Set-ExecutionPolicy -ExecutionPolicy AllSigned
Enregistrer les applets de commande
Vous devez enregistrer les applets de commande Windows PowerShell pour le Outil de déploiement de packages, pour pouvoir les utiliser. Pour enregistrer les applets de commande :
Si ce n'est pas déjà fait, téléchargez le package SDK de Dynamics 365 à partir de Centre de téléchargement Microsoft, puis exécutez le fichier du package afin d'extraire le contenu de ce dernier. Supposons que vous avez extrait le package dans le dossier c:\CRM de votre ordinateur. L'Outil de déploiement de packages et les autres fichiers requis sont disponibles à l'emplacement suivant : c:\CRM\SDK\Tools\PackageDeployer.
Démarrez Windows PowerShell sur votre ordinateur avec des privilèges élevés (exécuter en tant qu'administrateur).
À l'invite de la fenêtre Windows PowerShell, remplacez le répertoire avec le dossier Windows PowerShell du dossier PackageDeployer. Dans ce cas :
cd c:\CRM\SDK\Tools\PackageDeployer\PowerShell
Exécutez le script RegisterXRMTooling.ps1 pour enregistrer l'assembly (dll) Windows PowerShell du Package Deployer, et installez le composant logiciel enfichable Windows PowerShell pour l'Outil de déploiement de packages. Pour ce faire, tapez la commande qui suit, puis appuyez sur Entrée :
.\RegisterXRMTooling.ps1
Ajoutez le composant logiciel enfichable Windows PowerShell pour l'outil XRM. Cette action stocke les applets de commande suivants : Get-CrmConnection et Get-CrmOrganizations.
Add-PSSnapin Microsoft.Xrm.Tooling.Connector
Ajoutez le composant logiciel enfichable Windows PowerShell pour Package Deployer. Cette action stocke les applets de commande suivants : Get-CrmPackages et Import-CrmPackage.
Add-PSSnapin Microsoft.Xrm.Tooling.PackageDeployment
Vous êtes maintenant prêt à utiliser ces applets de commande Windows PowerShell. Pour répertorier les applets de commande que vous avez enregistrés, exécutez la commande suivante à l'invite de la fenêtre Windows PowerShell :
Get-Help “Crm”
Utiliser l'applet de commande pour récupérer des packages
Avant d'utiliser l'applet de commande, vérifiez que vous avez copié votre package dans le dossier PackageDeployer (dans ce cas, c:\CRM\SDK\Tools\PackageDeployer). Un package est un ensemble de fichiers et de dossiers créé dans le dossier de projets de Visual Studio (<Project>\Bin\Debug) lorsque vous créez votre projet dans Visual Studio. Copiez tout le contenu du dossier de débogage du projet vers le dossier PackageDeployer. Pour obtenir des informations détaillées sur la création d'un package à l'aide de Visual Studio, voir MSDN : créer des packages pour Package Deployer CRM.
Dans la fenêtre PowerShell, utilisez l'applet de commande suivante pour renvoyer une liste des packages pouvant être importés dans le dossier spécifié (dans ce cas, c:\CRM\SDK\Tools\PackageDeployer) :
Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer
Si vous souhaitez avoir des informations sur le package d'un dossier, utilisez l'applet de commande Get-CrmPackages avec le paramètre –PackageName pour spécifier le nom de l'assembly dans le dossier qui contient la définition de package.
Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll
L'emplacement de l'assembly de package peut être stocké dans une variable à l'aide de l'applet de commande Get-CrmPackages. Il peut ensuite être réutilisé dans l'applet de commande Import-CrmPackage pour spécifier une valeur pour le paramètre PackageDirectory. Par exemple, vous pouvez stocker les informations d'un ou de plusieurs packages retournés par l'applet de commande Get-CrmPackages dans une variable appelée $MyPackages.
$MyPackages = Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer
Pour afficher tous les packages.
$MyPackages
Pour afficher uniquement le troisième package.
$MyPackages[2].PackageAssemblyLocation
Ensuite, vous pouvez référencer chaque package dans le tableau de 0 à n. Parexemple, cette applet de commande importe le premier package trouvé dans $MyPackages.
Import-CrmPackage -CrmConnection $CRMConn -PackageDirectory $MyPackages[0].PackageAssemblyLocation
Notes
Le paramètre PackageAssemblyLocation et la possibilité d'afficher l'emplacement du dossier et le nom d'un package ont d'abord été introduits avec la Mise à jour de décembre 2016 pour Dynamics 365 (en ligne et local).Pour plus d'informations :Dynamics 365 SDK
Utiliser l'applet de commande pour vous connecter à l'instance de Dynamics 365
Fournissez vos informations d'identification pour vous connecter à votre instance Microsoft Dynamics 365 (Online) ou Dynamics 365 (local). La commande suivante vous invite à taper votre nom d'utilisateur et votre mot de passe pour vous connecter à l'instance Dynamics 365, elle enregistre ces informations dans la variable $Cred et les utilise ultérieurement pour la connexion au serveur Dynamics 365.
$Cred = Get-Credential
Utilisez la commande suivante pour établir une connexion à votre instance Microsoft Dynamics 365 (Online) ou Dynamics 365 (local). Nous stockons les informations de connexion dans la variable $CRMConn :
Si vous vous connectez à l'instance Dynamics 365 (local) :
$CRMConn = Get-CrmConnection -ServerUrl http://<your_CRM_Server> -OrganizationName <your_Org_Name> -Credential $Cred
Si vous vous connectez au serveur Microsoft Dynamics 365 (Online) :
$CRMConn = Get-CrmConnection -DeploymentRegion NorthAmerica –OnlineType Office365 –OrganizationName <your_Org_Name> -Credential $Cred
Notes
Les valeurs valides du paramètre DeploymentRegion sont : NorthAmerica, EMEA, APACSouthAmerica, Oceania, JPN et NorthAmerica2. Pour le paramètre OnlineType, les valeurs valides sont : Office365 et LiveID.
Les informations d'identification fournies sont validées lorsque vous exécutez la commande à l'étape 2.
Utiliser l'applet de commande pour déployer des packages
Utilisez ensuite les informations de connexion de Dynamics 365 stockées dans la variable $CRMConn pour déployer des packages vers l'instance Dynamics 365. La commande suivante déploie un package, désassemble le package dans le dossier c:\UnpackedFiles et enregistre les informations dans un fichier journal du dossier c:\MyLogFiles.
Import-CrmPackage –CrmConnection $CRMConn –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll –UnpackFilesDirectory c:\UnpackedFiles -LogWriteDirectory C:\MyLogFiles -Verbose
Notes
-
Les paramètres CrmConnection, PackageDirectory et PackageName sont obligatoires.
-
Au lieu de spécifier manuellement le dossier de package, vous pouvez utiliser une variable avec le paramètre PackageDirectory.Pour plus d'informations :Utiliser l'applet de commande pour récupérer des packages
-
Pour le paramètre PackageName, vous devez spécifier le nom d'assembly qui contient la définition de package.
-
Vous n'avez pas besoin de spécifier le paramètre UnpackFilesDirectory si votre package ne décompresse pas les fichiers durant le déploiement du package. Lors de la définition d'un package dans Visual Studio, vous pouvez spécifier s'il convient de décompresser les fichiers, à l'aide du paramètre agentdesktopzipfile du fichier ImportConfig.xml.Pour plus d'informations :MSDN : créer des packages pour Package Deployer CRM
-
Le paramètre Verbose est facultatif et il est utilisé pour afficher un journal détaillé des activités effectuées durant le processus de déploiement du package.
-
Le paramètre RuntimePackageSettings facultatif peut être utilisé avec les paramètres suivants :
-
Le paramètre LCID=localeID spécifie l'ID de langue, comme 1033 pour l'Anglais-États-Unis ou 1036 pour le Français-France, à partir des ID de paramètres régionaux du package. Si cet élément n'est pas spécifié, la langue par défaut est utilisée.
-
L’
Le paramètre SkipChecks=true/false doit être utilisé uniquement lorsque l'environnement cible ne contient pas d'autres solutions ou personnalisations. Lorsque le paramètre est défini sur vrai, l'importation de la solution ignorera certains contrôles de sécurité, qui peuvent améliorer les performances de l'importation.
-
-
Le dossier que vous spécifiez lors de l'utilisation du paramètre LogWriteDirectory doit déjà exister, et l'utilisateur qui exécute l'applet de commande Import-CrmPackage doit avoir une autorisation en écriture sur le dossier. En outre, le paramètre -Verbose est requis lorsque vous utilisez le paramètre LogWriteDirectory.
Le paramètre LogWriteDirectory a d'abord été introduit avec la Mise à jour de décembre 2016 pour Dynamics 365 (en ligne et local).Pour plus d'informations :Dynamics 365 SDK
La commande d'exemple suivant importe un package nommé SampleCRMPackage et spécifie l'Anglais-États-Unis (1033) comme langue pour importer le package.
Import-CrmPackage –CrmConnection $CRMConn –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll –UnpackFilesDirectory c:\UnpackedFiles –RuntimePackageSettings LCID=1033
Accéder à une aide détaillée concernant les applets de commande
Dans la fenêtre PowerShell, utilisez l'applet de commande Get-Help avec un nom d'applet de commande pour afficher une aide détaillée de l'applet de commande. Par exemple, pour obtenir une aide détaillées sur l'applet de commande Import-CrmPackage :
Get-Help Import-CrmPackage -full
Pour afficher l'aide en lignes des cmdlets, voir Référence de CRM PowerShell.
Résoudre les problèmes de déploiement de package à l'aide des fichiers journaux
L'Outil de déploiement de packages prend en charge une fonction de journalisation qui permet d'obtenir des informations détaillées sur les erreurs survenant lorsque quelqu'un se connecte à l'instance Microsoft Dynamics 365 à l'aide de l'outil et pour le déploiement de packages. Par défaut, l'outil génère trois fichiers journaux qui sont accessibles à l'emplacement suivant sur l'ordinateur sur lequel vous exécutez l'outil : c:\Users\<UserName>\AppData\Roaming\Microsoft\Microsoft Dynamics CRM Package Deployer\<Version>. Pour spécifier un autre dossier, utilisez le paramètre de l'applet de commande PowerShell -logWriteDirectory.Pour plus d'informations :Utiliser l'applet de commande pour récupérer des packages
Login_ErrorLog.log : fournit des informations sur les problèmes qui se produisent lorsque vous utilisez l'outil pour vous connecter à l'instance Dynamics 365. En cas de problème durant la connexion, un message s'affiche sur l'écran de connexion de l'outil, avec un lien vers ce fichier journal. Le message indique qu'une erreur s'est produite lors du traitement de la demande de connexion et l'utilisateur peut afficher le journal des erreurs. Vous pouvez cliquer sur le lien dans le message pour afficher ce fichier journal. Le fichier journal est créé la première fois que vous rencontrez un problème de connexion dans l'outil. Ensuite, le fichier journal est utilisé pour consigner les informations sur les problèmes de connexion, chaque fois que de ce type de problème survient.
PackageDeployer.log : fournit des informations détaillées sur chaque tâche effectuée dans l'outil lors du déploiement des packages. Pour afficher le fichier journal à partir de l'outil, cliquez sur le lien Afficher le fichier journal en bas de l'écran.
ComplexImportDetail.log : fournit des informations détaillées sur les données importées lors du dernier déploiement à l'aide de l'outil. Chaque fois que vous déployez un package à l'aide de cet outil, les détails existants du fichier journal sont déplacés vers un fichier appelé ComplexImportDetail._old.log dans le même répertoire, et le fichier ComplexImportDetail.log affiche des informations sur la dernière importation effectuée à l'aide de l'outil.
Meilleures pratiques pour le déploiement de packages
Lors du déploiement de 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 un serveur de production.
Sauvegarder l'instance de production avant de déployer un package.
Voir aussi
MSDN : créer des packages pour Package Deployer CRM
Administration de Dynamics 365
© 2017 Microsoft. Tous droits réservés. Copyright