Implemente los paquetes mediante Dynamics CRM Package Deployer y Windows PowerShell

 

Publicado: febrero de 2017

Se aplica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Nota

La información que se proporciona aquí es para versiones de Dynamics 365 anteriores a Dynamics 365 (en línea), versión 9.0. Para ver la documentación más reciente, consulte Implementar paquetes mediante Dynamics CRM Package Deployer y Windows PowerShell.

Package Deployer de Microsoft Dynamics CRM permite que los administradores implementar paquetes en una instancia de Dynamics 365 (local) o de Microsoft Dynamics 365 (online). Un "paquete" puede estar compuesto por cualquiera de estos elementos o por todos ellos:

  • Uno o varios archivos de solución de Dynamics 365.

  • Archivos sin formato o archivos de datos exportados de Herramienta de migración de la configuración. Para obtener más información acerca de la Herramienta de migración de la configuración, consulte Administrador datos de configuración.

  • El código personalizado que puede ejecutarse durante o después del paquete se implementa en Microsoft Dynamics 365.

  • Contenido HTML específico del paquete que mostrarse al principio y al final del proceso de implementación del paquete. Puede resultar útil para proporcionar una descripción de las soluciones y los archivos que se implementan en el paquete.

Los programadores crean los paquetes utilizando la plantilla de implementación de paquete en Microsoft Visual Studio.Más información:MSDN: Crear paquetes para el Implementador de paquetes CRM

Una vez creado el paquete, puede implementarlo ejecutando Implementador de paquetes de CRM o con los cmdlets de Windows PowerShell para la herramienta.

Importante

Antes de importar y ejecutar un paquete en una organización de producción, pruebe el paquete en una imagen reflejada de la organización de producción.

Realice siempre una copia de seguridad de la organización de producción antes de implementar un paquete.

En este tema

Implementar paquetes mediante la Herramienta de implementador de paquetes

Utilice Windows PowerShell para implementar paquetes

Solucione problemas de implementación de paquetes utilizando archivos de registro

Recomendaciones para implementar paquetes

Implementar paquetes mediante la Herramienta de implementador de paquetes

Puede usar la Herramienta de implementador de paquetes (packagedeployer.exe) para implementar paquetes de las siguientes formas.

Uso de Herramienta de implementador de paquetes para implementar paquetes

Use Herramienta de implementador de paquetes en la línea de comandos

Uso de Herramienta de implementador de paquetes para implementar paquetes

La Herramienta de implementador de paquetes solo puede procesar un paquete cada vez. Sin embargo, proporciona a los usuarios la capacidad de seleccionar un paquete para implementar desde varios paquetes disponibles en el directorio de Herramienta de implementador de paquetes. Algunas de las pantallas y acciones de la herramienta difieren en función de la definición del paquete. No es necesario que instale la Herramienta de implementador de paquetes. Sólo descárguela y ejecútela.

  1. Obtenga el paquete que se va a implementar. Un paquete es una colección de archivos y carpetas que se crea en la carpeta del proyecto de Visual Studio (<Project>\Bin\Debug) al generar el proyecto del paquete en Visual Studio. Copie lo siguiente de la carpeta de depuración del proyecto:

    • Carpeta <PackageName>: Esta carpeta contiene las soluciones, la configuración de importación, y el contenido para el paquete.

    • <PackageName>.dll: El ensamblado contiene el código para el paquete. De forma predeterminada, el nombre del ensamblado es el mismo que el nombre del proyecto de Visual Studio.

    Para obtener información detallada sobre la creación de un paquete utilizando Visual Studio, vea MSDN: Crear un paquete para la herramienta Package Deployer.

    Para este tema, supondremos que la carpeta y el ensamblado del paquete de la carpeta de depuración del proyecto Visual Studio (<Project>\Bin\Debug) se copian en la carpeta c:\DeployPackage.

  2. Descargar el SDK de Microsoft Dynamics CRM. A continuación, ejecute el archivo descargable para extraer el contenido del paquete.

  3. Explore la carpeta SDK\Tools\PackageDeployer y copie la carpeta y el ensamblado del paquete del c:\DeployPackage en la carpeta SDK\Tools\PackageDeployer.

  4. Después de copiar los archivos, ejecute la herramienta haciendo doble clic en el archivo PackageDeployer.exe en la carpeta SDK\Tools\PackageDeployer.

  5. Haga clic en Continuar en la pantalla principal de la herramienta.

  6. En la pantalla Conectarse a Microsoft Dynamics 365, proporcione los detalles de autenticación para conectarse al servidor de Dynamics 365 donde desea implementar el paquete. Si tiene varias organizaciones, y desea seleccionar la organización donde desea implementar el paquete, active la casilla Mostrar siempre la lista de organizaciones disponibles. Haga clic en Iniciar sesión.

  7. Si tiene varias organizaciones en el servidor de Dynamics 365, seleccione una organización de Dynamics 365 con la que desea conectarse.

  8. Seleccione el paquete que desea implementar y haga clic en Siguiente.

    Select your package in the Package Deployer Tool

  9. Siga las instrucciones de las pantallas posteriores para completar la implementación del paquete.

    Las pantallas aparecen según la definición del paquete que seleccionó para implementación. Para una implementación de extremo a extremo del paquete que use Herramienta de implementador de paquetes, vea el tema acerca de la implementación de los paquetes de Unified Service Desk: Implementar las aplicaciones de escritorio unificadas ejemplo de servicio al Servidor de CRM con el Implementador de paquetes

Use Herramienta de implementador de paquetes en la línea de comandos

Los administradores y personalizadores del sistema pueden pasar parámetros, como un código de idioma regional a packagedeployer.exe desde la línea de comandos. Estos parámetros pueden configurarse únicamente ejecutando Herramienta de implementador de paquetes en la línea de comandos.

Nota

Esta característica se introdujo en Actualización 0.1 de Microsoft Dynamics CRM Online 2016.

En esta tabla se indican los parámetros disponibles.

Parámetro

Descripción

Valor predeterminado

RuntimePackageSettings

Indica a packagedeployer.exe que acepte parámetros de línea de comandos como LCID y SkipChecks.

No disponible

LCID=localeID

Especifica el Id. de configuración regional, como 1033 es para Inglés-Estados Unidos o 1036 para Francés-Francia, desde los Id. de configuración regional disponibles en el paquete. Si no se especifica, el idioma predeterminado se usará.

Use el idioma predeterminado

SkipChecks=true/false

Use este parámetro solo cuando el entorno de destino no contiene no otras soluciones o personalizaciones. Cuando se establece como true, la importación de la solución omitirá algunas pruebas de seguridad, lo que puede mejorar el rendimiento de la importación.

FALSO

El siguiente ejemplo indica a Implementador de paquetes de CRM que omita algunas pruebas de seguridad y configure el idioma para importar como polaco.

packagedeployer.exe /Settings:"SkipChecks=true|lcid=1045"

Nota

Use el carácter de barra vertical | para separar los parámetros al ejecutar packagedeployer.exe en la línea de comandos con varios parámetros.

Para obtener más información acerca de los parámetros y los valores que se pueden pasar a packagedeployer.exe, vea MSDN: Crear paquetes para el Package Deployer de CRM

Utilice Windows PowerShell para implementar paquetes

La Herramienta de implementador de paquetes también proporciona soporte de Windows PowerShell para implementar paquetes.

Realice los siguientes pasos para usar cmdlets de PowerShell para implementar paquetes:

Requisitos previos

Registro de los cmdlets

Use el cmdlet para recuperar paquetes

Use el cmdlet para conectarse a la instancia de Dynamics 365

Use el cmdlet para implementar paquetes

Obtenga ayuda detallada sobre cmdlets

Requisitos previos

Estos son los requisitos previos para usar los cmdlets de PowerShell:

  • Se requiere PowerShell 3.0 o posterior para implementar un paquete utilizando PowerShell. Para comprobar su versión de PowerShell, ejecute una ventana de PowerShell y luego ejecute el siguiente comando: $Host.

  • Establezca la directiva de ejecución para ejecutar los scripts de PowerShell firmados. Para ello, ejecute una ventana de PowerShell como administrador, y luego ejecute el siguiente comando: Set-ExecutionPolicy -ExecutionPolicy AllSigned

Registro de los cmdlets

Debe registrar los cmdlets de Windows PowerShell para la Herramienta de implementador de paquetes para poder usarlos. Para registrar los cmdlets:

  1. Si aún no lo ha hecho, descargue el paquete SDK de Dynamics 365 del Centro de descarga de Microsoft, y ejecute el archivo del paquete para extraer el contenido del paquete. Supongamos que extrajo el paquete en la carpeta c:\CRM de su equipo. El Herramienta de implementador de paquetes y los demás archivos necesarios pasan a estar disponibles en la siguiente ubicación: c:\CRM\SDK\Tools\PackageDeployer.

  2. Inicie Windows PowerShell en el equipo con los privilegios elevados (ejecute como administrador).

  3. En el mensaje de la ventana de Windows PowerShell, cambie el directorio a la carpeta de Windows PowerShell en la carpeta PackageDeployer. En este caso:

    cd c:\CRM\SDK\Tools\PackageDeployer\PowerShell
    
  4. Ejecute el script RegisterXRMTooling.ps1 para registrar el ensamblado (dll) de Windows PowerShell del Package Deployer, e instale el complemento de Windows PowerShell para la Herramienta de implementador de paquetes. Para ello, escriba el siguiente comando, y presione ENTRAR:

    .\RegisterXRMTooling.ps1
    
  5. Agregue el complemento de Windows PowerShell para útiles de XRM. Esto registrará los cmdlets siguientes: Get-CrmConnection y Get-CrmOrganizations.

    Add-PSSnapin Microsoft.Xrm.Tooling.Connector
    
  6. Agregue el complemento de Windows PowerShell para Package Deployer. Esto registrará los cmdlets siguientes: Get-CrmPackages y Import-CrmPackage.

    Add-PSSnapin Microsoft.Xrm.Tooling.PackageDeployment
    

Ahora está listo para usar estos cmdlets de Windows PowerShell. Para mostrar los cmdlets que registró, ejecute el comando siguiente en el símbolo en la ventana de Windows PowerShell:

Get-Help “Crm”

Use el cmdlet para recuperar paquetes

Para poder usar el cmdlet, asegúrese de haber copiado el paquete en la carpeta PackageDeployer (en este caso, c:\CRM\SDK\Tools\PackageDeployer). Un paquete es una colección de archivos y carpetas que se crea en la carpeta del proyecto de Visual Studio (<Project>\Bin\Debug) al generar el proyecto en Visual Studio. Copie el contenido completo de la carpeta de depuración del proyecto en la carpeta PackageDeployer. Para obtener información detallada sobre la generación de un paquete utilizando Visual Studio, vea MSDN: Crear paquetes para el CRM Package Deployer.

  1. En la ventana de PowerShell, use el siguiente cmdlet para devolver una lista de paquetes disponibles para importación en la carpeta especificada (en este caso, c:\CRM\SDK\Tools\PackageDeployer):

    Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer
    
  2. Si desea obtener información acerca de un paquete en una carpeta, puede usar el cmdlet Get-CrmPackages junto con el parámetro - PackageName para especificar el nombre del ensamblado en la carpeta que contiene la definición del paquete.

    Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll
    
  3. La ubicación ensamblados del paquete se pueden almacenar en una variable mediante Get-CrmPackages cmdlet. A continuación puede ser reusada en Import-CrmPackage cmdlet de para especificar un valor para el parámetro de PackageDirectory. Por ejemplo, puede almacenar la información de uno o varios paquetes devueltos de Get-CrmPackages cmdlet en una variable denominada $MyPackages.

    $MyPackages = Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer 
    

    Para mostrar todos los paquetes.

    $MyPackages
    

    Para mostrar únicamente el tercer paquete.

    $MyPackages[2].PackageAssemblyLocation
    

    A continuación, puede hacer referencia a cada paquete en la matriz de 0 a n. Porejemplo, este cmdlet importa el primer paquete que se encuentra en $MyPackages.

    Import-CrmPackage -CrmConnection $CRMConn -PackageDirectory $MyPackages[0].PackageAssemblyLocation
    

    Nota

    El parámetro de PackageAssemblyLocation y la capacidad para mostrar la ubicación de la carpeta y el nombre de un paquete se introdujeron por primera vez con Actualización de diciembre de 2016 para Dynamics 365 (online y local).Más información:Dynamics 365 SDK

Use el cmdlet para conectarse a la instancia de Dynamics 365

  1. Especifique las credenciales para conectarse a la instancia de Microsoft Dynamics 365 (online) o de Dynamics 365 (local). Si ejecuta el siguiente comando se le pedirá que escriba su nombre de usuario y contraseña para conectarse a la instancia Dynamics 365 y la almacenaremos en la variable $Cred, y la usaremos más adelante para conectarse al servidor de Dynamics 365.

    $Cred = Get-Credential
    
  2. Use el siguiente comando para obtener una conexión a la instancia de Microsoft Dynamics 365 (online) o de Dynamics 365 (local). Almacenaremos la información de conexión en la variable $CRMConn:

    • Si va a conectarse a la instancia de Dynamics 365 (local):

      $CRMConn = Get-CrmConnection -ServerUrl http://<your_CRM_Server> -OrganizationName <your_Org_Name> -Credential $Cred
      
    • Si va a conectarse al servidor de Microsoft Dynamics 365 (online):

      $CRMConn = Get-CrmConnection -DeploymentRegion NorthAmerica –OnlineType Office365 –OrganizationName <your_Org_Name> -Credential $Cred
      

      Nota

      Para el parámetro DeploymentRegion, los valores válidos son NorthAmerica, EMEA, APACSouthAmerica, Oceania, JPN y NorthAmerica2. Los valores válidos del parámetro OnlineType son: Office365, LiveID.

  3. Sus credenciales suministradas se validan al ejecutar el comando en el paso 2.

Use el cmdlet para implementar paquetes

A continuación, use la información de conexión de Dynamics 365 almacenada en la variable $CRMConn para implementar paquetes en la instancia de Dynamics 365. El comando siguiente implementa un paquete, descomprime el paquete en la carpeta c:\UnpackedFiles , y registra la información en un archivo de registro en la carpeta c:\MyLogFiles .

Import-CrmPackage –CrmConnection $CRMConn –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll –UnpackFilesDirectory c:\UnpackedFiles -LogWriteDirectory C:\MyLogFiles -Verbose

Nota

  • Los parámetros CrmConnection, PackageDirectory y PackageName son obligatorios.

  • En lugar de especificar manualmente la carpeta del paquete, puede usar una variable con el parámetro PackageDirectory.Más información:Use el cmdlet para recuperar paquetes

  • Para el parámetro PackageName, tiene que especificar el nombre del ensamblado que contiene la definición del paquete.

  • No necesita especificar el parámetro UnpackFilesDirectory si el paquete no desempaqueta archivos durante la implementación del paquete. Cuando define un paquete en Visual Studio, especifique si desempaqueta archivos con el parámetro agentdesktopzipfile en el archivo ImportConfig.xml.Más información:MSDN: Crear paquetes para el Implementador de paquetes CRM

  • El parámetro de Verbose es opcional, y se usa para mostrar un registro detallado de las actividades realizadas durante el proceso de implementación del paquete.

  • El parámetro opcional RuntimePackageSettings puede usarse junto con los siguientes parámetros:

    • El parámetro LCID=localeID especifica el Id. de configuración regional, como 1033 es para Inglés-Estados Unidos o 1036 para Francés-Francia, desde los Id. de configuración regional disponibles en el paquete. Si no se especifica, el idioma predeterminado se usará.

    • El

      parámetro SkipChecks=true/false se debe usar solo cuando el entorno de destino no contiene no otras soluciones o personalizaciones. Cuando se establece como true, la importación de la solución omitirá algunas pruebas de seguridad, lo que puede mejorar el rendimiento de la importación.

  • La carpeta que especifique cuando se use el parámetro LogWriteDirectory ya debe existir, y el usuario que ejecuta el Import-CrmPackage cmdlet debe tener permisos de escritura en la carpeta. Además, se necesitará el parámetro -Verbose cuando se usa el parámetro LogWriteDirectory.

    El parámetro LogWriteDirectory se introdujo por primera vez con Actualización de diciembre de 2016 para Dynamics 365 (online y local).Más información:Dynamics 365 SDK

El siguiente comando de ejemplo importa un paquete denominado SampleCRMPackage y especifica Inglés-Estados Unidos (1033) como idioma para importar el paquete.

Import-CrmPackage –CrmConnection $CRMConn –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll –UnpackFilesDirectory c:\UnpackedFiles –RuntimePackageSettings LCID=1033

Obtenga ayuda detallada sobre cmdlets

En la ventana de PowerShell, use el cmdlet Get-Help con un nombre de cmdlet para ver una ayuda detallada del cmdlet. Por ejemplo, para obtener ayuda detallada para el cmdlet Import-CrmPackage:

Get-Help Import-CrmPackage -full

Para ver la ayuda en pantalla de los cmdlets, vea Referencia de CRM PowerShell.

Solucione problemas de implementación de paquetes utilizando archivos de registro

La Herramienta de implementador de paquetes proporciona soporte de registro para obtener información detallada sobre los errores que se puedan producir cuando un usuario inicia sesión en la instancia de Microsoft Dynamics 365 utilizando la herramienta e implementando paquetes. De forma predeterminada, la herramienta genera tres archivos de registro que estén disponibles en la siguiente ubicación en el equipo donde se ejecuta la herramienta: c:\Users\<UserName>\AppData\Roaming\Microsoft\Microsoft Dynamics CRM Package Deployer\<Version>. Para especificar otra carpeta, use el parámetro -LogWriteDirectory PowerShell cmdlet.Más información:Use el cmdlet para recuperar paquetes

  • Login_ErrorLog.log: Proporciona información sobre los problemas que se han producido cuando se usa la herramienta para iniciar sesión en la instancia de Dynamics 365. Si hay un problema al iniciar sesión, aparecerá un mensaje en la pantalla de inicio de sesión de la herramienta con un vínculo a este archivo de registro. El mensaje indica que se ha producido un error al procesar la solicitud de inicio de sesión y el usuario puede ver el registro de error. Puede hacer clic en el vínculo del mensaje para ver este archivo de registro. El archivo de registro se crea la primera vez que se encuentran problemas de inicio de sesión en la herramienta. Después de eso, el archivo de registro se usa para registrar información sobre un problema de inicio de sesión, siempre que aparece.

  • PackageDeployer.log: Proporciona información detallada sobre cada tarea realizada en la herramienta durante la implementación de paquetes. Puede ver el archivo de registro desde la herramienta haciendo clic en el vínculo Ver registro en la parte inferior de la pantalla.

  • ComplexImportDetail.log: Proporciona información detallada sobre los datos importados en la última implementación utilizando la herramienta. Cada vez que implementa un paquete utilizando esta herramienta, los detalles existentes del archivo de registro pasan a un archivo denominado ComplexImportDetail._old.log en el mismo directorio, y el archivoComplexImportDetail.log muestra información sobre la última importación realizada utilizando la herramienta.

Recomendaciones para implementar paquetes

Mientras implementa paquetes, los administradores de Dynamics 365 deben:

  • Insistir en un ensamblado de paquete firmado de modo que pueda realizar el seguimiento de un ensamblado hasta su origen.

  • Comprobar el paquete en una instancia de preproducción (preferiblemente una imagen reflejada de la instancia de producción) antes de ejecutarlo en un servidor de producción.

  • Realizar una copia de seguridad de la instancia de producción antes de implementar un paquete.

Ver también

MSDN: Crear paquetes para el CRM Package Deployer
Administración de Dynamics 365

© 2017 Microsoft. Todos los derechos reservados. Copyright