Distribuzione di pacchetti tramite Dynamics CRM Package Deployer e Windows PowerShell

 

Data di pubblicazione: febbraio 2017

Si applica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Nota

Le informazioni fornite qui sono destinate a versioni di Dynamics 365 precedenti a Dynamics 365 (Online), versione 9.0. Per la documentazione più recente, vedere Distribuzione di pacchetti tramite Dynamics CRM Package Deployer e Windows PowerShell.

Package Deployer per Microsoft Dynamics CRM consente agli amministratori di distribuire pacchetti in un'istanza di Dynamics 365 (locale) o di Microsoft Dynamics 365 (online). Un "pacchetto" può essere dato da uno o tutti i seguenti elementi:

  • Uno o più file di soluzione di Dynamics 365.

  • File flat o file di dati esportati dallo Strumento di migrazione configurazione. Per informazioni sullo Strumento di migrazione configurazione, vedere Gestione dei dati di configurazione.

  • Codice personalizzato che può essere eseguito durante o dopo la distribuzione del pacchetto in Microsoft Dynamics 365.

  • Contenuto HTML specifico del pacchetto che può essere visualizzato all'inizio e alla fine del processo di distribuzione del pacchetto. Può essere utile per fornire una descrizione delle soluzioni e dei file distribuiti nel pacchetto.

Gli sviluppatori possono creare pacchetti utilizzando il modello di distribuzione del pacchetto in Microsoft Visual Studio.Ulteriori informazioni:MSDN: Creare pacchetti per Package Deployer per CRM

Dopo essere stato creato, un pacchetto può essere distribuito eseguendo Package Deployer CRM o utilizzando i cmdlet Windows PowerShell dello strumento.

Importante

Prima di importare ed eseguire un pacchetto in un'organizzazione di produzione, esegui il test del pacchetto in un'immagine speculare non di produzione dell'organizzazione di produzione.

Esegui sempre il backup dell'organizzazione di produzione prima di distribuire un pacchetto.

In questo argomento

Distribuzione dei pacchetti con Strumento Package Deployer

Utilizzare Windows PowerShell per distribuire i pacchetti

Risolvere i problemi di distribuzione del pacchetto utilizzando file di registro

Procedure consigliate per la distribuzione di pacchetti

Distribuzione dei pacchetti con Strumento Package Deployer

Puoi utilizzare lo Strumento Package Deployer (packagedeployer.exe) per la distribuzione di pacchetti nei modi seguenti.

Utilizza Strumento Package Deployer per distribuire i pacchetti

Utilizza Strumento Package Deployer nella riga di comando

Utilizza Strumento Package Deployer per distribuire i pacchetti

Lo Strumento Package Deployer può elaborare un solo pacchetto alla volta. Offre tuttavia agli utenti la possibilità di selezionare un pacchetto da distribuire tra più pacchetti disponibili nella directory Strumento Package Deployer. Alcune delle schermate e delle azioni dello strumento variano in base alla definizione del pacchetto. Non è necessario installare lo Strumento Package Deployer. È sufficiente scaricarlo ed eseguirlo.

  1. Ottenere il pacchetto da distribuire. Un pacchetto è una raccolta di file e cartelle che viene creato nella cartella del progetto di Visual Studio (<Project>\Bin\Debug) quando si compila il progetto del pacchetto in Visual Studio. Copiare la procedura seguente dalla cartella di debug di progetto:

    • cartella <PackageName>: Questa cartella include le soluzioni, la configurazione di importazione e i contenuti per il pacchetto.

    • <PackageName>.dll: L'assembly include il codice del pacchetto. Per impostazione predefinita, il nome dell'assembly è uguale al nome del progetto Visual Studio.

    Per informazioni dettagliate sulla creazione di un pacchetto utilizzando Visual Studio, vedere MSDN: Creare un pacchetto per lo strumento Package Deployer.

    Per questo argomento, si presuppone che la cartella del pacchetto e l'assembly della cartella di debug del progetto di Visual Studio (<Project>\Bin\Debug) vengono copiati nella cartella c:\DeployPackage.

  2. Scaricare Microsoft Dynamics CRM SDK. Quindi, eseguire il file eseguibile scaricato per estrarre il contenuto del pacchetto.

  3. Passare alla cartella SDK\Tools\PackageDeployer e copiare la cartella del pacchetto e l'assembly da c:\DeployPackage alla cartella SDK\Tools\PackageDeployer.

  4. Una volta copiati i file, eseguire lo strumento facendo clic sul file PackageDeployer.exe nella cartella SDK\Tools\PackageDeployer.

  5. Fare clic su Continua nella schermata principale dello strumento.

  6. Nella schermata Connessione a Microsoft Dynamics 365 fornire i dettagli di autenticazione per connettersi al server Dynamics 365 in cui si desidera distribuire il pacchetto. Se si dispone di più organizzazioni e si desidera selezionare l'organizzazione in cui si desidera distribuire il pacchetto, selezionare la casella di controllo Visualizza sempre l'elenco delle organizzazioni disponibili. Fare clic su Accesso.

  7. Se disponi di più organizzazioni nel tuo server Dynamics 365, seleziona un'organizzazione Dynamics 365 a cui connetterti.

  8. Seleziona pacchetto da distribuire e fai clic su Successivo.

    Select your package in the Package Deployer Tool

  9. Seguire le istruzioni nelle schermate successive per completare la distribuzione del pacchetto.

    Le schermate verranno visualizzate in base alla definizione del pacchetto selezionato per la distribuzione. Per una distribuzione end-to-end del pacchetto che utilizza lo Strumento Package Deployer, vedere l'argomento relativo alla distribuzione di pacchetti di Unified Service Desk: Distribuire le applicazioni Unified Service Desk di esempio al server CRM utilizzando Package Deployer

Utilizza Strumento Package Deployer nella riga di comando

Gli amministratori di sistema e i responsabili della personalizzazione possono passare i parametri, ad esempio un codice della lingua regionale a packagedeployer.exe dalla riga di comando. Tali parametri possono essere configurati solo eseguendo Strumento Package Deployer dalla riga di comando.

Nota

Questa funzione è stata introdotta la prima volta in Aggiornamento 0.1 di Microsoft Dynamics CRM Online 2016.

In questa tabella sono disponibili i seguenti parametri.

Parametro

Descrizione

Valore predefinito

RuntimePackageSettings

Indica a packagedeployer.exe di accettare i parametri della riga di comando ad esempio LCID e SkipChecks.

Non applicabile

LCID=localeID

Specifica l'ID delle impostazioni locali, ad esempio 1033 per l'inglese degli Stati Uniti o 1036 per il francese della Francia, dagli ID delle impostazioni locali disponibili nel pacchetto. Se non specificato altrimenti, verrà utilizzata la lingua predefinita.

Utilizza la lingua predefinita

SkipChecks=true/false

Usa questo parametro solo solo quando l'ambiente di destinazione non contiene altre soluzioni o personalizzazioni. Quando viene impostata su true, l'importazione della soluzione importerà alcuni controlli di sicurezza, che potranno migliorare le prestazioni dell'importazione.

Falso

Nell'esempio seguente viene indicato a Package Deployer CRM di ignorare alcuni controlli di sicurezza e viene impostata la lingua su Importa come polacco.

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

Nota

Utilizza il carattere barra verticale | per separare i parametri quando esegui packagedeployer.exe nella riga di comando con più parametri.

Per ulteriori informazioni sui parametri e i valori che puoi passare a a packagedeployer.exe, vedi MSDN: Crea i pacchetti per Package Deployer CRM.

Utilizzare Windows PowerShell per distribuire i pacchetti

Lo Strumento Package Deployer fornisce il supporto per Windows PowerShell per la distribuzione dei pacchetti.

Eseguire la procedura seguente per utilizzare i cmdlet di PowerShell per la distribuzione di pacchetti:

Prerequisiti

Registrare i cmdlet

Utilizzare il cmdlet per recuperare i pacchetti

Utilizzare il cmdlet per connettersi all'istanza di Dynamics 365

Utilizzare il cmdlet per distribuire i pacchetti

Ottenere una guida dettagliata sui cmdlet

Prerequisiti

Di seguito sono riportati i prerequisiti per l'utilizzo dei cmdlet di PowerShell:

  • È necessario PowerShell 3.0 o versioni successive per distribuire un pacchetto utilizzando PowerShell. Per controllare la versione di PowerShell, eseguire una finestra di PowerShell, quindi eseguire il comando $Host

  • Impostare i criteri di esecuzione per eseguire gli script PowerShell con firma. A tale scopo, eseguire una finestra di PowerShell come amministratore, quindi eseguire il comando: Set-ExecutionPolicy -ExecutionPolicy AllSigned

Registrare i cmdlet

È necessario registrare i cmdlet di Windows PowerShell per lo Strumento Package Deployer prima di poterlo utilizzare. Per registrare i cmdlet:

  1. Se non è ancora stato fatto, scaricare il pacchetto Dynamics 365 SDK dall'Area download Microsoft, quindi eseguire il file del pacchetto per estrarne il contenuto. Si supponga di aver estratto il pacchetto nella cartella c:\CRM nel computer. Lo Strumento Package Deployer e gli altri file necessari diventano disponibili nel percorso seguente: c:\CRM\SDK\Tools\PackageDeployer.

  2. Avviare Windows PowerShell nel computer con privilegi elevati (esegui come amministratore).

  3. Al prompt della finestra di Windows PowerShell cambiare la directory sulla cartella di Windows PowerShell della cartella PackageDeployer. In questo caso:

    cd c:\CRM\SDK\Tools\PackageDeployer\PowerShell
    
  4. Eseguire lo script RegisterXRMTooling.ps1 per registrare l'assembly Windows PowerShell di Package Deployer (DLL) e installare lo snap-in di Windows PowerShell per lo Strumento Package Deployer. A tale scopo, digitare il comando seguente e premere INVIO:

    .\RegisterXRMTooling.ps1
    
  5. Aggiungere lo snap-in Windows PowerShell per gli strumenti XRM. Verranno registrati i seguenti cmdlet: Get-CrmConnection e Get-CrmOrganizations.

    Add-PSSnapin Microsoft.Xrm.Tooling.Connector
    
  6. Aggiungere lo snap-in Windows PowerShell per Package Deployer. Verranno registrati i seguenti cmdlet: Get-CrmPackages e Import-CrmPackage.

    Add-PSSnapin Microsoft.Xrm.Tooling.PackageDeployment
    

È ora possibile utilizzare questi cmdlet di Windows PowerShell. Per elencare i cmdlet registrati, eseguire il comando seguente al prompt nella finestra di Windows PowerShell:

Get-Help “Crm”

Utilizzare il cmdlet per recuperare i pacchetti

Prima di poter utilizzare il cmdlet, assicurarsi di aver copiato il pacchetto nella cartella PackageDeployer (in questo caso c:\CRM\SDK\Tools\PackageDeployer). Un pacchetto è una raccolta di file e cartelle che viene creato nella cartella del progetto di Visual Studio (<Project>\Bin\Debug) quando si compila il progetto in Visual Studio. Copiare l'intero contenuto della cartella debug del progetto nella cartella PackageDeployer. Per informazioni dettagliate sulla compilazione di un pacchetto utilizzando Visual Studio, vedere MSDN: Creare pacchetti per Package Deployer per CRM.

  1. Nella finestra di PowerShell, utilizza il cmdlet seguente per restituire un elenco dei pacchetti disponibili per l'importazione nella cartella specificata (in questo caso, c:\CRM\SDK\Tools\PackageDeployer):

    Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer
    
  2. Per informazioni su un pacchetto in una cartella, puoi utilizzare il cmdlet Get-CrmPackages insieme al parametro –PackageName per specificare il nome dell'assembly nella cartella che contiene la definizione del pacchetto.

    Get-CrmPackages –PackageDirectory c:\CRM\SDK\Tools\PackageDeployer –PackageName SampleCRMPackage.dll
    
  3. Il percorso dell'assembly del pacchetto può essere archiviato in una variabile utilizzando il cmdlet Get-CrmPackages. Quindi, può essere riutilizzato nel cmdlet Import-CrmPackage per specificare un valore del parametro PackageDirectory. Ad esempio, puoi archiviare le informazioni di uno o più pacchetti restituiti dal cmdlet Get-CrmPackages in una variabile chiamata $MyPackages.

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

    Per visualizzare tutti i pacchetti.

    $MyPackages
    

    Per visualizzare solo il terzo pacchetto.

    $MyPackages[2].PackageAssemblyLocation
    

    Quindi, puoi fare riferimento a ciascun pacchetto nella matrice da 0 a N. Adesempio, questo cmdlet importa il primo pacchetto trovato in $MyPackages.

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

    Nota

    Il parametro PackageAssemblyLocation e la capacità di visualizzare il percorso della cartella e il nome di un pacchetto sono stati introdotti inizialmente con Aggiornamento di dicembre 2016 per Dynamics 365 (online e locale).Ulteriori informazioni:SDK di Dynamics 365

Utilizzare il cmdlet per connettersi all'istanza di Dynamics 365

  1. Specificare le credenziali per la connessione all'istanza di Dynamics 365 (locale) o Microsoft Dynamics 365 (online). In seguito all'esecuzione del seguente comando viene richiesto di digitare nome utente e password per la connessione all'istanza di Dynamics 365 per l'archiviazione nella variabile $Cred e l'utilizzo successivo per la connessione al server Dynamics 365.

    $Cred = Get-Credential
    
  2. Utilizzare il comando seguente per ottenere una connessione all'istanza di Dynamics 365 (locale) o Microsoft Dynamics 365 (online). Le informazioni sulla connessione verranno archiviate nella variabile $CRMConn:

    • Se è in corso la connessione all'istanza di Dynamics 365 (locale):

      $CRMConn = Get-CrmConnection -ServerUrl http://<your_CRM_Server> -OrganizationName <your_Org_Name> -Credential $Cred
      
    • Se è in corso la connessione al server Microsoft Dynamics 365 (online):

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

      Nota

      Per il parametro DeploymentRegion, i valori validi sono NorthAmerica, EMEA, APACSouthAmerica, Oceania, JPN e NorthAmerica2. Per il parametro OnlineType, i valori validi sono Office365 e LiveID.

  3. Le credenziali specificate vengono convalidate durante l'esecuzione del comando nel passaggio 2.

Utilizzare il cmdlet per distribuire i pacchetti

Successivamente, utilizza le informazioni sulla connessione Dynamics 365 archiviate nella variabile $CRMConn per distribuire i pacchetti nell'istanza di Dynamics 365. Il seguente comando distribuisce un pacchetto, lo disassembla nella cartella c:\UnpackedFiles e archivia le informazioni in un file di registro nella cartella c:\MyLogFiles.

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

Nota

  • I parametri CrmConnection, PackageDirectory e PackageName sono obbligatori.

  • Anziché specificare manualmente la cartella del pacchetto, puoi utilizzare una variabile con il parametro PackageDirectory.Ulteriori informazioni:Utilizzare il cmdlet per recuperare i pacchetti

  • Per il parametro PackageName è necessario specificare il nome dell'assembly che contiene la definizione del pacchetto.

  • Non è necessario specificare il parametro UnpackFilesDirectory se il pacchetto non decomprime i file durante la distribuzione del pacchetto. Durante la definizione di un pacchetto in Visual Studio, specificare se decomprimere i file utilizzando il parametro agentdesktopzipfile nel file ImportConfig.xml.Ulteriori informazioni:MSDN: Creare pacchetti per Package Deployer per CRM

  • Il parametro Verbose è facoltativo e viene utilizzato per visualizzare un registro dettagliato delle attività eseguite durante il processo di distribuzione del pacchetto.

  • Il parametro RuntimePackageSettings facoltativo può essere utilizzato con i parametri seguenti:

    • Il parametro LCID=localeID specifica l'ID delle impostazioni locali, ad esempio 1033 per l'inglese degli Stati Uniti o 1036 per il francese della Francia, dagli ID delle impostazioni locali disponibili nel pacchetto. Se non specificato altrimenti, verrà utilizzata la lingua predefinita.

    • Il

      parametro SkipChecks=true/false deve essere utilizzato solo quando l'ambiente di destinazione non contiene altre soluzioni o personalizzazioni. Quando viene impostata su true, l'importazione della soluzione importerà alcuni controlli di sicurezza, che potranno migliorare le prestazioni dell'importazione.

  • La cartella che hai specificato quando usi il parametro LogWriteDirectory deve esistere già e l'utente che esegue il cmdlet Import-CrmPackage deve disporre dell'autorizzazione in scrittura per la cartella. Inoltre, il parametro -Verbose è necessario quando utilizzi il parametro LogWriteDirectory.

    Il parametro LogWriteDirectory è stato introdotto inizialmente con Aggiornamento di dicembre 2016 per Dynamics 365 (online e locale).Ulteriori informazioni:SDK di Dynamics 365

Il seguente comando di esempio importa un pacchetto denominato SampleCRMPackage e specifica inglese-Stati Uniti (1033) come lingua per importare il pacchetto.

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

Ottenere una guida dettagliata sui cmdlet

Nella finestra di PowerShell utilizzare il cmdlet Get-Help con un nome di cmdlet per visualizzare una guida dettagliata per il cmdlet. Ad esempio, per ottenere una guida dettagliata per il cmdlet Import-CrmPackage:

Get-Help Import-CrmPackage -full

Per visualizzare la Guida online dei cmdlet, vedere Riferimento di CRM PowerShell.

Risolvere i problemi di distribuzione del pacchetto utilizzando file di registro

Lo Strumento Package Deployer offre supporto di registrazione per ottenere informazioni dettagliate sugli errori che possono verificarsi quando un utente accede all'istanza di Microsoft Dynamics 365 utilizzando lo strumento e distribuendo pacchetti. Per impostazione predefinita, lo strumento genera tre file di registro che sono disponibili nel percorso seguente nel computer in cui viene eseguito lo strumento: c:\Users\<UserName>\AppData\Roaming\Microsoft\Microsoft Dynamics CRM Package Deployer\<Version>. Per specificare una cartella diversa, utilizza il parametro cmdlet -LogWriteDirectory di PowerShell.Ulteriori informazioni:Utilizzare il cmdlet per recuperare i pacchetti

  • Login_ErrorLog.log: fornisce informazioni sui problemi che si verificano quando si utilizza lo strumento per accedere all'istanza di Dynamics 365. Se durante l'accesso si verificano dei problemi, verrà visualizzato un messaggio nella schermata di accesso dello strumento contenente un collegamento a questo file di registro. Il messaggio indica che si è verificato un errore durante l'elaborazione della richiesta di accesso e che l'utente può visualizzare il registro errori. È possibile fare clic sul collegamento nel messaggio per visualizzare il file di registro. Il file di registro viene creato la prima volta che si verifica un problema di accesso nello strumento. Questo file di registro viene quindi utilizzato per registrare le informazioni su un problema di accesso in qualunque momento si verifichi.

  • PackageDeployer.log: fornisce informazioni dettagliate su ciascuna attività eseguita nello strumento durante la distribuzione dei pacchetti. È possibile visualizzare il file di registro dallo strumento facendo clic sul collegamento Visualizza file di registro nella parte inferiore dello schermo.

  • ComplexImportDetail.log: fornisce informazioni dettagliate sui dati importati durante l'ultima distribuzione utilizzando lo strumento. Ogni volta che si distribuisce un pacchetto utilizzando questo strumento, i dettagli esistenti del file di registro vengono spostati in un file denominato ComplexImportDetail._old.log nella stessa directory, mentre il file ComplexImportDetail.log contiene informazioni sull'ultima importazione eseguita utilizzando lo strumento.

Procedure consigliate per la distribuzione di pacchetti

Durante la distribuzione di pacchetti, gli amministratori di Dynamics 365 devono:

  • Insistere su un assembly del pacchetto firmato in modo che possano ricollegare un assembly alla relativa origine.

  • Verificare il pacchetto in un'istanza di preproduzione (preferibilmente un'immagine mirror dell'istanza di produzione) prima di eseguirlo in un server di produzione.

  • Eseguire il backup dell'istanza di produzione prima di distribuire un pacchetto.

Vedere anche

MSDN: Creare pacchetti per Package Deployer per CRM
Amministrare Dynamics 365

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright