Share via


Creare pacchetti per Package Deployer per Dynamics 365

 

Data di pubblicazione: gennaio 2017

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

Package Deployer per Microsoft Dynamics CRMconsente agli amministratori di distribuire pacchetti in istanze di Microsoft Dynamics 365 (online) e di Dynamics 365 (locale). 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 di configurazione esportato dallo Strumento di migrazione configurazione. Per ulteriori informazioni sullo strumento, vedere TechNet: Gestione dei dati di configurazione.

  • Codice personalizzato che può essere eseguito prima, durante o dopo la distribuzione dell'istanza di Dynamics 365.

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

Microsoft Dynamics 365 offre un modello di Visual Studio per creare i pacchetti che è possibile utilizzare con Strumento Package Deployer per distribuirli in un'istanza Dynamics 365.

Nota

Con il rilascio dell'aggiornamento 1 di CRM Online 2016 e CRM 2016 Service Pack 1 (locale), il modello Visual Studio per la creazione dei pacchetti Dynamics 365 è stato migliorato per aggiungere supporto per le nuove funzionalità come il supporto del parametro di runtime; l'importazione di più file di configurazione di lingua, l'utilizzo di un unico pacchetto; la possibilità di controllare se sovrascrivere o gestire la personalizzazione durante l'aggiornamento di soluzioni e altro. I progetti del pacchetto esistenti possono essere aggiornati per trarre vantaggio dalle nuove funzionalità impostate dall'aggiornamento degli assembly di Package Deployer CRM utilizzando NuGet 8.1 o versioni successive.

In questo argomento

Prerequisiti

Creare un pacchetto

Distribuire un pacchetto

Procedure consigliate per la creazione e la distribuzione di pacchetti

Prerequisiti

  • Assicurarsi di aver preparato tutte le soluzioni e i file che si desidera includere nel pacchetto.

  • Microsoft .NET Framework 4.5.2

  • Microsoft Visual Studio 2012, Visual Studio 2013 o Visual Studio 2015

  • NuGet Package Manager per Visual Studio 2012, Visual Studio 2013 o Visual Studio 2015

  • Modelli di Microsoft Dynamics 365 SDK per Visual Studio che includono il modello del pacchetto. È possibile ottenere il modello, in uno dei modi seguenti:

Creare un pacchetto

Completare i cinque passaggi seguenti per creare un pacchetto:

Passaggio 1: Creare un progetto utilizzando il modello

Passaggio 2: Aggiungere i file al progetto

Passaggio 3: Aggiornare i file HTML: Inglese e altre lingue

Passaggio 4: Specificare i valori di configurazione per il pacchetto

Passaggio 5: Definire il codice personalizzato per il pacchetto

Passaggio 1: Creare un progetto utilizzando il modello

  1. Avviare Microsoft Visual Studio e creare un nuovo progetto.

  2. Nella finestra di dialogo Nuovo progetto:

    1. Nell'elenco dei modelli installati espandi Visual C# e seleziona Modelli Dynamics 365 SDK.

    2. Verificare che .NET Framework 4.5.2 sia selezionato.

    3. SelezionaPacchetto Dynamics 365.

    4. Specificare il nome e la posizione del progetto e fare clic su OK.

    Nuovo progetto per la creazione di un pacchetto personalizzato

Passaggio 2: Aggiungere i file al progetto

  1. Nel riquadro Esplora soluzioni aggiungere le soluzioni e i file nella cartella PkgFolder.

  2. Per ogni file aggiunto nella cartella PkgFolder, nel riquadro Proprietà impostare il valore Copia nella directory di output su Copia sempre. In questo modo i file aggiunti sono disponibili nel pacchetto generato.

Passaggio 3: Aggiornare i file HTML: Inglese e altre lingue

  1. Nel riquadro Esplora soluzioni espandere PkgFolder > Content > en-us. Verranno visualizzate due cartelle denominate EndHTML e WelcomeHTML. Le cartelle contengono HTML e i file associati che consentono di visualizzare le informazioni alla fine e all'inizio del processo di distribuzione del pacchetto. Modificare i file nella cartella HTML di queste cartelle per aggiungere informazioni per il pacchetto.

  2. È inoltre possibile aggiungere i file HTML nel pacchetto in altre lingue affinché il contenuto HTML venga visualizzato nella lingua selezionata nelle impostazioni locali del computer dell'utente. A tale scopo:

    1. Creare una copia della cartella en-us in PkgFolder > Content.

    2. Rinominare la cartella copiata nella lingua appropriata. Ad esempio, per la lingua spagnola, rinominarla con Es-es.

    3. Modificare il contenuto dei file HTML per aggiungere il contenuto in spagnolo.

Passaggio 4: Specificare i valori di configurazione per il pacchetto

  1. Definire la configurazione del pacchetto aggiungendo informazioni sul pacchetto nel file ImportConfig.xml, disponibile in PkgFolder. Fare doppio clic sul file per aprirlo per la modifica. Nella tabella seguente sono elencate le informazioni su ciascun parametro e nodo presente nel file di configurazione.

    Parametro/Nodo

    Descrizione

    installsampledata

    True o false. Se true, installa i dati di esempio nell'istanza di Dynamics 365. Si tratta degli stessi dati di esempio che è possibile installare dall'area Impostazioni > Gestione dati in Dynamics 365.

    waitforsampledatatoinstall

    True o false. Se restituisce true e, se anche installsampledata è impostata su true, attende l'installazione dei dati di esempio prima di distribuire il pacchetto.

    Nota

    Assicurarsi di impostare installsampledata su true per impostare waitforsampledatatoinstall su true.

    agentdesktopzipfile

    Nome del file ZIP da decomprimere. Se si specifica un nome del file ZIP in questa posizione, viene aggiunge una schermata durante il processo di distribuzione del pacchetto in cui viene richiesto di selezionare la posizione desiderata per decomprimere il contenuto del file.

    Questa procedura viene comunemente utilizzata per creare pacchetti per Unified Service Desk for Microsoft Dynamics 365. Per ulteriori informazioni su Unified Service Desk, vedere TechNet: Guida di amministrazione di Unified Service Desk.

    agentdesktopexename

    Nome del file .exe o .msi nel file ZIP o un URL da richiamare al termine del processo di distribuzione.

    Questa procedura viene comunemente utilizzata per creare pacchetti per Unified Service Desk.

    crmmigdataimportfile

    Nome del file di dati di configurazione predefinito con estensione ZIP esportato mediante Strumento di migrazione configurazione.

    • Puoi inoltre importare una versione localizzata del file di dati di configurazione in base all'ID delle impostazioni locali (LCID) specificato tramite le nuove impostazioni di runtime quando esegui Package Deployer. Utilizza il nodo <cmtdatafile> (spiegato più avanti) per specificare le versioni localizzate del file di dati di configurazione in un pacchetto e quindi utilizza il metodo OverrideConfigurationDataFileLanguage (spiegato più avanti) per specificare la logica per importare il file di dati di configurazione in base all'ID delle impostazioni locali specificato tramite le impostazioni di runtime. Non è possibile importare più di un file di dati di configurazione alla volta utilizzando un pacchetto.

    • Per Dynamics 365 (locale), se il file di dati di configurazione contiene informazioni utente e le istanze di Dynamics 365 di origine e di destinazione si trovano nello stesso dominio Active Directory, le informazioni utente verranno importante nell'istanza Dynamics 365 di destinazione. Per importare le informazioni utente in un'istanza di Dynamics 365 (locale) in un dominio diverso, devi includere il file di mapping dell'utente (con estensione xml) generato utilizzando Strumento di migrazione configurazione nel progetto e specificarlo con il file di dati di configurazione utilizzando l'attributo usermapfilename nel nodo <cmtdatafile> spiegato di seguito. Le informazioni utente non possono essere importate nelle istanze di Dynamics 365 (online).

    Nodo <solutions>

    Contiene una matrice di nodi <configsolutionfile> che descrivono le soluzioni da importare. L'ordine delle soluzioni in questo nodo indica l'ordine in cui le soluzioni verranno importate nell'istanza Dynamics 365 di destinazione.

    Nodo <configsolutionfile>

    Utilizza questo nodo nel nodo <solutions> per specificare le singole soluzioni e le informazioni seguenti per ogni soluzione da importare: 

    • solutionpackagefilename: specifica il nome del file con estensione zip della soluzione. Obbligatorio.

    • overwriteunmanagedcustomizations: specifica se sovrascrivere eventuali personalizzazioni non gestite durante l'importazione di una soluzione già esistente nell'istanza di Dynamics 365 di destinazione. Questa operazione è facoltativa e se non specifichi questo attributo, per impostazione predefinita le personalizzazioni non gestite nella soluzione esistenti vengono gestite nell'istanza di destinazione di Dynamics 365.

    • publishworkflowsandactivateplugins: specifica se pubblicare i flussi di lavoro e attivare i plug-in nell'istanza di Dynamics 365 di destinazione dopo aver importato la soluzione. Questa operazione è facoltativa e se non specifichi questo attributo, per impostazione predefinita i flussi di lavoro sono pubblicati e i plug-in sono attivati dopo aver importato la soluzione nell'istanza di destinazione di Dynamics 365.

    È possibile aggiungere più nomi di file della soluzione in un pacchetto aggiungendo tutti i nodi <configsolutionfile>. Ad esempio, se si desidera importare tre file della soluzione, aggiungerli nel seguente modo:

    <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>

    < Nodo filestoimportnode>

    Contiene una matrice di nodi <configimportfile> e <zipimportdetails> utilizzati per descrivere rispettivamente i singoli file e i file ZIP da importare.

    Nodo <configimportfile>

    Utilizzare questo nodo nel nodo <configimportfile> per descrivere un file da importare in Dynamics 365. È possibile aggiungere più file in un pacchetto aggiungendo tutti i nodi <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>

    Questo ha gli attributi seguenti:

    Attributo

    Descrizione

    filename

    Nome del file contenente i dati di importazione. Se si tratta di un file ZIP, un nodo <zipimportdetails> deve essere presente con un nodo <zipimportdetail> per ogni file contenuto nel file ZIP.

    filetype

    Questo può essere csv, xml o zip.

    associatedmap

    Nome del mapping dei dati di importazione di Dynamics 365 da utilizzare con questo file. Se è vuoto, tenta di utilizzare il nome del mapping dei dati di importazione determinato dal sistema per il file.

    importtoentity

    Può essere il nome del file EXE nel file ZIP, un URL o un file .msi utilizzato per includere un collegamento da richiamare al termine del processo.

    datadelimiter

    Nome del delimitatore dei dati utilizzato nel file di importazione. I valori validi sono singlequote o doublequotes.

    fielddelimiter

    Nome del delimitatore dei campi utilizzato nel file di importazione. I valori validi sono comma o colon o singlequote.

    enableduplicatedetection

    Indica se abilitare le regole di rilevamento dei duplicati sull'importazione dei dati. I valori validi sono true o false.

    isfirstrowheader

    Viene utilizzato per indicare che la prima riga del file di importazione contiene i nomi dei campi. I valori validi sono true o false.

    isrecordownerateam

    Indica se il proprietario del record nell'importazione deve essere un team. I valori validi sono true o false.

    owneruser

    Indica l'ID utente che dovrà essere proprietario dei record. Il valore predefinito è l'utente attualmente connesso.

    waitforimporttocomplete

    Se true, il sistema attende il completamento dell'importazione prima di procedere. Se false, aggiunge i processi alla coda e continua.

    Nodo <zipimportdetails>

    Questo nodo contiene una matrice di nodi <zipimportdetail> che descrivono i file inclusi in un file ZIP utilizzato per l'importazione in Dynamics 365.

    Nodo <zipimportdetail>

    Utilizzare questo nodo nel nodo <zipimportdetails> per fornire informazioni su un singolo file in un file ZIP specificato nel nodo <configimportfile>.

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

    Questo ha gli attributi seguenti:

    Attributo

    Descrizione

    filename

    Nome del file contenente i dati di importazione.

    filetype

    Questo può essere csv o xml.

    importtoentity

    Può essere il nome del file EXE nel file ZIP, un URL o un file MSI utilizzato per fornire un collegamento da richiamare al termine del processo.

    Nodo <filesmapstoimport>

    Questo nodo contiene una matrice di nodi <configmapimportfile> da importare. L'ordine dei file di mapping in questo nodo indica l'ordine in cui vengono importati. Per ulteriori informazioni sui mapping dei dati, vedere Creare mapping di dati per l'importazione.

    Nodo <configimportmapfile>

    Utilizzare questo nodo nel nodo <filesmapstoimport> per fornire informazioni su un singolo file di mapping da importare in Dynamics 365.

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

    <cmtdatafiles>

    Questo nodo contiene una matrice di nodi <cmtdatafile> che contiene la versione localizzata del file di dati di configurazione da importare.

    <cmtdatafile>

    Utilizza il nodo nel nodo <cmtdatafiles> per specificare i file di dati di configurazione localizzati e l'ID delle impostazioni locali (obbligatorio) e il file di mapping delle informazioni utente (facoltativo). Ad esempio:

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

    Puoi definire la logica personalizzata nel metodo OverrideConfigurationDataFileLanguage (spiegato più avanti) per importare un file di dati di configurazione localizzato anziché quello predefinito (specificato in crmmigdataimportfile) in base al valore ID delle impostazioni locali (LCID) specificato tramite le impostazioni di runtime (illustrate in seguito).

  2. Fare clic su Salva tutto.

    Quanto segue rappresenta i contenuti di un file ImportConfig.xml di esempio.

    <?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>
    

Passaggio 5: Definire il codice personalizzato per il pacchetto

  1. Nel riquadro Esplora soluzioni fare doppio clic sul file PackageTemplate.cs al livello radice per modificarlo.

  2. Nel file PackageTemplate.cs è possibile:

    1. Immettere il codice personalizzato da eseguire quando il pacchetto viene inizializzato nella definizione del metodo di override di InitializeCustomExtension.

      Questo metodo può essere utilizzato per consentire agli utenti di utilizzare i parametri di runtime durante l'esecuzione di un pacchetto. Lo sviluppatore può aggiungere supporto per tutti i parametri di runtime al pacchetto utilizzando la proprietà RuntimeSettings se dispone di un codice per elaborarlo in base all'input dell'utente.

      Ad esempio, il seguente codice di esempio abilita un parametro di runtime chiamato SkipChecks per il pacchetto con due possibili valori: true o false. Il codice di esempio controlla se l'utente ha specificato i parametri di runtime durante l'esecuzione di Package Deployer CRM (utilizzando la riga comandi o PowerShell) e quindi di conseguenza elabora le informazioni. Se non è stato specificato nessun parametro runtime dall'utente mentre esegue il pacchetto, il valore della proprietà RuntimeSettings sarà 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");
      }
      

      Ciò consente all'amministratore di utilizzare la riga di comando oppure il cmdlet Import-CrmPackage per specificare se ignorare i controlli di sicurezza durante l'esecuzione di Strumento Package Deployer per importare il pacchetto. Ulteriori informazioni: Technet: Pacchetti di distribuzione che utilizzando CRM Package Deployer e Windows PowerShell

    2. Immetti il codice personalizzato da eseguire prima che vengano importate le soluzioni nella definizione del metodo di sovrascrittura di PreSolutionImport per specificare se mantenere o sovrascrivere le personalizzazioni mentre si aggiorna la soluzione specificata in un'istanza Dynamics 365 di destinazione e se attivare automaticamente i plug-in e i flussi di lavoro.

    3. Utilizza la definizione del metodo di sovrascrittura di RunSolutionUpgradeMigrationStep per eseguire la trasformazione di dati o l'aggiornamento tra due versioni di una soluzione. Questo metodo è chiamato solo se la soluzione che si sta importando è già presente nell'istanza Dynamics 365 di destinazione.

      Questa funzione prevede i parametri seguenti:

      Parametro

      Descrizione

      solutionName

      Nome della soluzione.

      oldVersion

      Numero di versione della soluzione precedente.

      newVersion

      Numero di versione della nuova soluzione.

      oldSolutionId

      GUID della soluzione precedente.

      newSolutionId

      GUID della nuova soluzione.

    4. Immetti il codice personalizzato da eseguire prima che venga completata l'importazione della soluzione nella definizione della sovrascrittura del metodo BeforeImportStage. I dati di esempio e alcuni file flat per soluzioni specificate nel file ImportConfig.xml sono importati prima che venga completata l'importazione della soluzione.

    5. Sostituisci la lingua al momento selezionata per l'importazione dei dati di configurazione utilizzando la definizione del metodo di sovrascrittura di OverrideConfigurationDataFileLanguage. Se l'ID delle impostazioni locali specificato della lingua specificata non è disponibile nell'elenco delle lingue disponibili nel pacchetto, viene incluso il file dei dati predefinito.

      Specifica le lingue disponibili per i dati di configurazione nel nodo <cmtdatafiles> nel file ImportConfig.xml. Il file di importazione dei dati di configurazione predefinito è specificato nell'attributo crmmigdataimportfile nel file ImportConfig.xml.

      Ignorare i controlli dei dati (OverrideDataImportSafetyChecks = true) può essere efficace se sei sicuro che l'istanza Dynamics 365 di destinazione non contenga alcun dato.

    6. Immetti il codice personalizzato da eseguire dopo il completamento dell'importazione nella definizione della sovrascrittura del metodo AfterPrimaryImport. I file flat rimanenti che non sono stati importati in precedenza, prima dell'importazione della soluzione verranno ora importati.

    7. Modifica il nome predefinito della cartella del pacchetto da PkgFolder al nome del pacchetto desiderato. A tale scopo, rinomina la cartella PkgFolder nel riquadro Esplora soluzioni, quindi modifica il valore restituito nella proprietà 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. Modificare il nome del pacchetto modificando il valore restituito nella proprietà GetNameOfImport.

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

      Questo è il nome del pacchetto che verrà visualizzato nella pagina di selezione del pacchetto nella creazione guidata di Package Deployer CRM.

    9. Modificare la descrizione del pacchetto modificando il valore restituito nella proprietà GetImportPackageDescriptionText.

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

      Questa è la descrizione del pacchetto che verrà visualizzata insieme al nome del pacchetto nella pagina di selezione del pacchetto nella procedura guidata di Package Deployer.

    10. Modificare il nome esteso del pacchetto modificando il valore restituito nella proprietà GetLongNameOfImport.

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

      Il nome esteso del pacchetto viene visualizzato nella pagina successiva dopo aver selezionato il pacchetto da installare.

  3. Inoltre, per il pacchetto sono disponibili la funzione e le variabili seguenti:

    Nome

    Tipo

    Descrizione

    CreateProgressItem

    Funzione

    Viene utilizzato per creare un nuovo elemento dello stato nell'interfaccia utente (IU).

    RaiseUpdateEvent

    Funzione

    Viene utilizzato per aggiornare lo stato creato dalla chiamata a CreateProgressItem.

    ProgressPanelItemStatus è un tipo di variabile enum:

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

    RaiseFailEvent

    Funzione

    Viene utilizzato per l'importazione dello stato corrente non riuscita con la generazione di un messaggio di eccezione.

    IsRoleAssoicatedWithTeam

    Funzione

    Viene utilizzato per determinare se un ruolo è associato a un team specificato.

    IsWorkflowActive

    Funzione

    Viene utilizzato per determinare se un flusso di lavoro specificato è attivo.

    PackageLog

    Puntatore delle classi

    Questo è un puntatore all'interfaccia di registrazione inizializzata per il pacchetto. Questa interfaccia viene utilizzata da un pacchetto per registrare i messaggi e le eccezioni nel file di registro del pacchetto.

    RootControlDispatcher

    Proprietà

    Questa è un'interfaccia del dispatcher utilizzata per consentire il controllo per il rendering dell'interfaccia utente durante la distribuzione del pacchetto. Utilizzare questa interfaccia per racchiudere eventuali elementi o comandi dell'interfaccia utente. È importante verificare questa variabile per rilevare la presenza di valori Null prima di utilizzarla, in quanto potrebbe essere impostata o meno su un valore.

    CrmSvc

    Proprietà

    Questo è un puntatore alla classe CrmServiceClient che consente a un pacchetto di indirizzare Dynamics 365 dall'interno del pacchetto. Utilizza questa classe per eseguire Dynamics 365 SDK e altre operazioni nei metodi sottoposti a override.

    DataImportBypass

    Proprietà

    Utilizza questa opzione per specificare se Package Deployer CRM ignora tutte le operazioni di importazione dei dati come l'importazione dei dati di esempio Dynamics 365 e i dati esportati da Strumento di migrazione configurazione. Specifica vero o falso. Il valore predefinito è false.

    OverrideDataImportSafetyChecks

    Proprietà

    Utilizza questa opzione per specificare se Package Deployer CRM ignorerà alcuni dei controlli di sicurezza. Ciò aiuterà a migliorare le prestazioni di importazione. Specifica true o false. Il valore predefinito è false.

    È consigliabile impostare su true solo se l'istanza di destinazione di Dynamics 365 non contiene alcun dato.

  4. Salvare il progetto e quindi compilarlo (Compila > Compila soluzione) per creare il pacchetto. Il pacchetto è costituito dai file seguenti nella cartella <Project>\Bin\Debug.

    • Cartella <PackageName>: il nome della cartella è lo stesso di quello modificato per il nome della cartella del pacchetto nel passaggio 2.g di questa sezione (Passaggio 5: Definire il codice personalizzato per il pacchetto.) Questa contiene tutte le soluzioni, i dati di configurazione, i file flat e i contenuti per il pacchetto.

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

    Il prossimo passaggio è la distribuzione del pacchetto.

Distribuire un pacchetto

Dopo aver creato un pacchetto, è possibile distribuirlo nell'istanza di Dynamics 365 utilizzando Strumento Package Deployer o Windows PowerShell. Per informazioni dettagliate, vedere TechNet: Distribuzione di pacchetti tramite CRM Package Deployer o Windows PowerShell.

Procedure consigliate per la creazione e la distribuzione di pacchetti

Quando si creano i pacchetti, gli sviluppatori devono assicurarsi che gli assembly del pacchetto siano firmati.

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

  • Insistere sull'utilizzo di un assembly del pacchetto firmato affinché sia possibile 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'istanza di produzione.

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

Vedere anche

Novità per gli sviluppatori: Microsoft Dynamics 365

Microsoft Dynamics 365

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright