Crearea de pachete pentru instrumentul Package Deployer

Package Deployer permite administratorilor să implementeze pachete pe instanțe Microsoft Dataverse. Un pachet poate consta din oricare sau toate dintre următoarele:

  • Unul sau mai multe fișiere soluție Dataverse.
  • Fișiere plate sau fișiere de date de configurare din instrumentul Migrare configurare. Pentru informații suplimentare despre instrument, consultați Mutați date de configurare în instanțe și organizații cu instrumentul Migrare configurare.
  • Codul particularizat care poate rula înaintea, în timpul, sau după ce pachetul este implementat în instanța Dataverse.
  • Conținutul HTML specific pachetului care se poate afișa la începutul și la sfârșitul procesului de implementare. Acesta poate fi util pentru a furniza o descriere a soluțiilor și fișierelor implementate în pachet.

Un șablon Visual Studio 2015 sau o versiune ulterioară (disponibil pentru descărcare) este utilizat pentru a crea pachete. După crearea unui pachet, utilizați instrumentul Package Deployer pentru a vă implementa pachetul la o instanță Dataverse.

Cerințe preliminare

Creați un pachet

Efectuați următorii cinci pași pentru a crea un pachet:

Pasul 1: Creeați un proiect folosind șablonul

  1. Porniți Visual Studio și creați un proiect nou.

  2. În caseta de dialog Proiect nou:

    1. Din lista șabloanelor instalate, extindeți Visual C# și selectați Șabloane SDK Dynamics 365.
    2. Asigurați-vă că .NET Framework 4.6.2 este selectat.
    3. Selectați Pachet Dynamics 365.
    4. Specificați numele și locația proiectului, și faceți clic pe OK.

    Nou proiect pentru a crea un pachet personalizat.

Pasul 2: Adăugați fișierele dvs. în proiect

  1. În panoul Exploratorul de soluții, adăugați soluțiile și fișierele dvs. sub folderul PkgFolder.
  2. Pentru fiecare fișier pe care îl adăugați sub folderul PkgFolder, în panoul Proprietăți, setați valoarea Copiere în directorul de ieșiri la Copiază întotdeauna. Acest lucru asigură că fișierul dvs. este disponibil în pachetul generat.

Pasul 3: Actualizați fișierele HTML: engleză și alte limbi

  1. În panoul Explorator de soluții, extindeți PkgFolder > Conţinut > en-us. Veți găsi două foldere numite EndHTML și WelcomeHTML. Aceste dosare conțin HTML și fișierele asociate care vă permit să afișați informații la sfârșitul și începutul procesului de implementare a pachetelor. Editați fișierele din folderul HTML al acestor foldere pentru a adăuga informații pentru pachetul dvs.

  2. Puteți adăuga, de asemenea, fișierele HTML din pachetul dvs. în alte limbi, astfel încât conținutul în HTML să apară în limbă pe baza setărilor locale ale computerului utilizatorului. Pentru aceasta:

    1. Creați o copie a folderului en-us sub PkgFolder > Conţinut.
    2. Redenumiți folderul copiat în limba corespunzătoare. De exemplu, pentru limba spaniolă, redenumiți-o es-ES.
    3. Modificați conținutul fișierelor HTML pentru a adăuga conținut spaniol.

Pasul 4: Specificați valorile de configurare pentru pachet

  1. Definiți configurația pachetului adăugând informații despre pachetul dvs. în fișierul ImportConfig.xml disponibil în PkgFolder. Faceți dublu clic pe fișier pentru a-l deschide pentru editare. Următoarea listă oferă informații despre fiecare parametru și nod din fișierul de configurare.

    installsampledata
    True sau false. Dacă true, instalează datele de eșantion în instanța Dataverse. Acesta este același exemplu de date din care puteți instala din zona Setări > Gestionarea datelor în Dataverse.

    waitforsampledatatoinstall
    Adevărat sau fals. Dacă adevărat și dacă installsampledata este, de asemenea, setat pe adevărat, așteaptă instalarea datelor de eșantion înainte de a implementa pachetul.

    Notă

    Asigurați-vă că ați setat installsampledata la adevărat dacă setați waitforsampledatatoinstall la adevărat.

    agentdesktopzipfile
    Numele fișierului fișierului zip de dezarhivat. Dacă specificați aici un nume de fișier .zip, acesta adaugă un ecran în timpul procesului de implementare a pachetelor care vă solicită să selectați o locație în care doriți să dezarhivați conținuturile fișierului.

    Acesta este utilizat în mod obișnuit pentru crearea de pachete pentru Unified Service Desk pentru Dynamics 365. Pentru informații despre Unified Service Desk, consultați Ghid de administrare pentru Unified Service Desk 3.0.

    agentdesktopexename
    Numele fișierului .exe sau .msi din fișierul zip sau a unei adrese URL care trebuie invocată la sfârșitul procesului de implementare.

    Acesta este utilizat în mod obișnuit pentru crearea de pachete pentru Unified Service Desk.

    crmmigdataimportfile
    Numele fișierului fișierului de date implicit de configurare (.zip) exportat folosind instrumentul Migrare configurare.

    • Puteți importa, de asemenea, o versiune localizată a fișierului de date de configurare bazat pe ID-ul local (LCID) specificat folosind setări noi de execuție în timpul rulării Package Deployer. Utilizați nodul <cmtdatafile> (explicat mai târziu) pentru a specifica versiunile localizate ale fișierului de date de configurare dintr-un pachet și apoi utilizați metoda OverrideConfigurationDataFileLanguage (explicată mai târziu) pentru a specifica logica pentru importul fișierului de date de configurare bazat pe ID-ul local specificat cu setările de execuție. Nu puteți importa mai multe fișiere de date de configurare utilizând un pachet pe rând.

    • Pentru Dataverse (local), dacă fișierul dvs. de date de configurare conține informații despre utilizator și atât sursa cât și instanțele țintă Dataverse sunt pe același domeniu Active Directory, informațiile utilizatorului vor fi importate în instanța țintă Dataverse. Pentru a importa informațiile utilizatorului la instanța Dataverse (local) pe un domeniu diferit, trebuie să includeți fișierul hartă utilizator (.xml) generat folosind instrumentul Migrare configurare din proiectul dvs. și să îl specificați împreună cu fișierul de date de configurare folosind atributul usermapfilename în nodul <cmtdatafile> explicat mai târziu. Informațiile despre utilizator nu pot fi importate în instanțe Dataverse.
      nod <solutions>
      Conține o serie de noduri <configsolutionfile> care descriu soluțiile de importat. Ordinea soluțiilor din acest nod indică ordinea în care soluțiile vor fi importate pe instanța țintă Dataverse.

      nod <configsolutionfile>
      Utilizați acest nod sub nodul <solutions> pentru a specifica soluțiile individuale și următoarele informații pentru fiecare soluție care trebuie importată:

    • solutionpackagefilename: Specificați numele fișierului .zip al soluției dvs. Necesar

    • overwriteunmanagedcustomizations: Specificați dacă să suprascrieți orice particularizări neadministrate atunci când importați o soluție care există deja în instanța Dynamics 365 țintă. Aceasta este opțională și dacă nu specificați acest atribut, în mod implicit, personalizările neadministrate din soluția existentă sunt menținute pe instanța țintă Dynamics 365.

    • publishworkflowsandactivateplugins: Specificați dacă doriți să publicați fluxuri de lucru și să activați inserturile în instanța Dynamics 365 țintă după importarea soluției. Aceasta este opțională și dacă nu specificați acest atribut, în mod implicit, fluxurile de lucru sunt publicate și inserturile sunt activate după ce soluția este importată în instanța țintă Dynamics 365.

      Puteți adăuga mai multe nume de fișiere cu soluție într-un pachet adăugând cât mai multe noduri <configsolutionfile>. De exemplu, dacă doriți să fie importate trei fișiere cu soluție, adăugați-le astfel:

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

    nod <filestoimport>
    Conține o serie de <configimportfile> și noduri <zipimportdetails> care sunt utilizate pentru a descrie fișiere individuale și respectiv fișiere zip pentru a fi importate.

    nod <configimportfile>
    Utilizați acest nod în sub nodul <configimportfile> pentru a descrie un fișier în care să fie importat în Dataverse. Puteți adăuga mai multe fișiere într-un pachet adăugând cât mai multe noduri <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>  
    
    

    Acesta are următoarele atribute:

    Atribut Descriere
    filename Numele fișierului care conține datele de import. Dacă fișierul este un fișier .zip, un nod <zipimportdetails> trebuie să fie prezent cu un nod <zipimportdetail> pentru fiecare fișier din fișierul .zip.
    filetype Acesta poate fi csv, xml sau zip.
    associatedmap Numelemapării de date Dataverse de import pe care să o utilizați cu acest fișier. Dacă este necompletat, încercările de a utiliza sistemul au determinat numele mapării de date pentru acest fișier.
    importtoentity Poate numele fișierului exe din fișierul zip, un URL sau un fișier .msi să furnizeze un link de invocat la finalul procesului.
    datadelimiter Numele delimitatorului de date utilizat în fișierul de import. Valorile valide sunt singlequote sau doublequotes.
    fielddelimiter Numele delimitatorului de câmp utilizat în fișierul de import. Valorile valide sunt virgula sau punctul și virgula, sau ghilimele simple.
    enableduplicatedetection Indică dacă să activați regulile detectării de dubluri la importul datelor. Valorile valide sunt adevărat sau fals.
    isfirstrowheader Folosit pentru a indica faptul că primul rând al fișierului de import conține numele câmpurilor. Valori valide sunt true sau false.
    isrecordownerateam Indică dacă proprietarul înregistrării la import ar trebui să fie o echipă. Valori valide sunt true sau false.
    owneruser Indică ID-ul de utilizator care ar trebui să dețină înregistrările. Valoarea implicită este utilizatorul conectat în prezent.
    waitforimporttocomplete Dacă true, sistemul așteaptă completarea importului înainte de a continua. Dacă false, pune la coadă operațiunile și merge mai departe.

    nod <zipimportdetails>
    Acest nod conține o serie de noduri <zipimportdetail> care descriu fișierele incluse într-un fișier zip care este utilizat pentru a importa în Dynamics 365.

    nod <zipimportdetail>
    Utilizați acest nod sub nodul <zipimportdetails> pentru a furniza informații despre un fișier individual într-un fișier .zip care este specificat în nodul <configimportfile>.

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

    Acesta are următoarele atribute:

    Atribut Descriere
    filename Numele fișierului care conține datele de import.
    filetype Acesta poate fi csv sau xml.
    importtoentity Poate numele fișierului exe din fișierul zip, un url sau un fișier .msi să furnizeze un link de invocat la finalul procesului.

    nod <filesmapstoimport>
    Acest nod conține o serie de noduri <configmapimportfile> de importat. Ordinea fișierelor hartă din acest nod indică ordinea în care sunt importate. Pentru informații despre hărțile de date, consultați Creați mapări date pentru import.

    nod <configimportmapfile>
    Utilizați acest nod sub nodul <filesmapstoimport> pentru a furniza informații despre un fișier hartă individual pe care să îl importați în Dataverse.

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

    nod <cmtdatafiles>
    Acest nod conține o serie de noduri <cmtdatafile> care conține versiunea localizată a fișierului de date de configurare care urmează să fie importat.

    nod <cmtdatafile>
    Utilizați acest nod sub nodul <cmtdatafiles> pentru a specifica fișierele de date de configurare localizate împreună cu ID-ul local (necesar) și fișierul cu informații despre utilizator (opțional). De exemplu:

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

    Puteți defini logica personalizată în metoda OverrideConfigurationDataFileLanguage (explicată mai târziu) pentru a importa un fișier de date de configurare localizat în loc de cel implicit (specificat în crmmigdataimportfile) pe baza valorii locale ID (LCID) specificată folosind setările runtime (explicate mai târziu).

  2. Faceți clic pe Salvați tot.

    Următorul reprezintă conținuturile unui fișier ImportConfig.xml eșantion.

    <?xml version="1.0" encoding="utf-16"?>  
    <configdatastorage xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"  
    xmlns:xsd="https://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>  
    
    

Pasul 5: Definiți codul personalizat pentru pachetul dvs.

  1. În panoul Explorator de soluții, faceți dublu clic pe fișierul PackageTemplate.cs la rădăcină pentru a edita.

  2. În fișierul PackageTemplate.cs, puteți:

    1. Introduceți codul personalizat pentru a executa atunci când pachetul este inițializat în definiția metodei de înlocuire a InitializeCustomExtension.

      Această metodă poate fi utilizată pentru a permite utilizatorilor să utilizeze parametrii de rulare în timpul rulării unui pachet. Ca dezvoltator, puteți adăuga asistență pentru orice parametru de execuție la pachetul dvs. utilizând proprietatea RuntimeSettings atâta timp cât aveți cod pentru procesarea acestuia pe baza intrării utilizatorului.

      De exemplu, următorul cod de eșantionare activează un parametru de rulare numit SkipChecks pentru pachetul care are două valori posibile: adevărat sau fals. Codul de eșantion verifică dacă utilizatorul a specificat parametri de execuție în timpul rulării Package Deployer (fie folosind linia de comandă sau PowerShell), apoi procesează informațiile în consecință. Dacă utilizatorul nu specifică niciun parametru de rulare în timpul rulării pachetului, valoarea proprietății RuntimeSettings va fi nulă.

      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");  
      }  
      

      Aceasta permite administratorului să utilizeze linia de comandă sau cmdlet Import-CrmPackage pentru a specifica dacă săriți verificările de siguranță în timpul rulării instrumentului Package Deployer de importare a pachetului. Informații suplimentare: Implementați pachete utilizând Package Deployer și Windows PowerShell

    2. Introduceți codul personalizat pentru a fi executat înainte ca soluțiile să fie importate în definiția metodei de anulare a PreSolutionImport pentru a specifica dacă mențineți sau rescrieți personalizările în timp ce actualizați soluția specificată într-o instanță țintă Dataverse și dacă activați automat inserturile și fluxurile de lucru.

    3. Utilizați definiția metodei de anulare a RunSolutionUpgradeMigrationStep pentru a efectua transformarea datelor sau actualizarea între două versiuni ale unei soluții Această metodă este apelată numai dacă soluția importată este deja prezentă în instanța țintă Dataverse.

      Această funcție se așteaptă la următorii parametri:

      Parametru Descriere
      solutionName Numele soluției
      oldVersion Numărul de versiune al soluției vechi
      newVersion Numărul de versiune al soluției noi
      oldSolutionId GUID-ul soluției vechi.
      newSolutionId GUID-ul soluției noi.
    4. Introduceți codul particularizat pentru a executa înainte ca importul de soluție să se finalizeze în definiția de înlocuire a metodei BeforeImportStage. Datele eșantion și unele fișiere plane pentru soluții specificate în fișierul ImportConfig.xml sunt importate înainte de completarea importului de soluții.

    5. Înlocuiți limba selectată în prezent pentru importul de date de configurare utilizând definiția metodei de anulare a OverrideConfigurationDataFileLanguage. Dacă ID-ul de localizare specificat (LCID) al limbii specificate nu se găsește în lista de limbi disponibile din pachet, fișierul de date implicit este importat.

      Specificați limbile disponibile pentru datele de configurare din nodul <cmtdatafiles> în fișierul ImportConfig.xml. Fișierul implicit de importare a datelor de configurare este specificat în atributul crmmigdataimportfile în fișierul ImportConfig.xml.

      Omiterea verificărilor de date (OverrideDataImportSafetyChecks = true) poate fi eficient aici dacă sunteți sigur că instanța țintă Dataverse nu conține date.

    6. Introduceți codul particularizat pentru a executa după ce importul se finalizează în definiția de înlocuire a metodei AfterPrimaryImport>. Restul fișierelor plate care nu au fost importate mai devreme, înainte de începerea importului de soluții, sunt importate acum.

    7. Modificați numele implicit al folderului pachetului dvs. din PkgFolder în numele pachetului pe care îl doriți. Pentru a face acest lucru, redenumiți folderul PkgFolder> din panoul Explorator de soluții și apoi editați valoarea returnată sub proprietatea 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. Schimbați numele pachetului prin editarea valorii de returnare sub proprietatea GetNameOfImport.

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

      Acesta este numele pachetului dvs. care va apărea pe pagina de selecție a pachetelor din expertul Dynamics 365 Package Deployer.

    9. Schimbați descrierea pachetului prin editarea valorii de returnare sub proprietatea GetImportPackageDescriptionText.

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

      Aceasta este descrierea pachetului dvs. care va apărea lângă numele pachetului pe pagina selecției pachetului din expertul Package Deployer.

    10. Schimbați numele lung al pachetului prin editarea valorii de returnare sub proprietatea GetLongNameOfImport.

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

      Numele lung al pachetului apare pe pagina următoare după ce ați selectat pachetul de instalat.

  3. În plus, următoarele funcții și variabile sunt disponibile pentru pachet:

    Nume Tip Descriere
    CreateProgressItem(String) Function Utilizat pentru a crea un nou element de progres în interfața utilizator (UI).
    RaiseUpdateEvent(String, ProgressPanelItemStatus) Function Utilizat pentru a actualiza progresul creat de apelul la CreateProgressItem(String).

    ProgressPanelItemStatus este o enumerare cu următoarele valori:

    Funcționează = 0
    Complet = 1
    Nereușit = 2
    Avertisment = 3
    Necunoscut = 4
    RaiseFailEvent(String, Exception) Function Folosit pentru a eșua importul de stare curentă cu un mesaj de excepție.
    IsRoleAssoicatedWithTeam(Guid, Guid) Function Utilizat pentru a determina dacă un rol este asociat cu o echipă specificată.
    IsWorkflowActive(Guid) Function Utilizat pentru a determina dacă un flux de lucru specificat este activ.
    PackageLog Indicator de clasă Acesta este un indicator către interfața de logare inițiată pentru pachet. Această interfață este folosită de un pachet pentru a înregistra mesaje și excepții de la fișierul jurnal de pachete.
    RootControlDispatcher Proprietate Aceasta este o interfață de dispecerat folosită pentru a permite controlului dvs. să-și redea propria UI în timpul implementării pachetului. Utilizați această interfață pentru a încadra orice elemente sau comenzi UI. Este important să verificați această variabilă pentru valori nule înainte de a o utiliza, deoarece poate fi sau nu setată la o valoare.
    CrmSvc Proprietate Acesta este un indicator pentru clasa CrmServiceClient care permite unui pachet să se adreseze Dynamics 365 din interiorul pachetului. Utilizați acest lucru pentru a executa metode SDK și alte acțiuni în metodele suprasolicitate.
    DataImportBypass Proprietate Utilizați acest lucru pentru a specifica dacă Dynamics 365 Package Deployer omite toate operațiunile de importare a datelor, cum ar fi importul eșantioanelor de date Dataverse, date de fișier plat și date exportate din instrumentul Migrare configurare. Specificați adevărat sau fals. Implicit este false.
    OverrideDataImportSafetyChecks Proprietate Utilizați acest lucru pentru a specifica dacă Dynamics 365 Package Deployer va ignora unele dintre controalele sale de siguranță, ceea ce ajută la îmbunătățirea performanței la import. Specificați true sau false. Implicit este false.

    Ar trebui să setați acest lucru pe true numai dacă instanța țintă Dataverse nu conține date.
  4. Salvați proiectul dumneavoastră, apoi construiți-l (Construire > Construiți soluția) pentru a crea pachetul. Pachetul dvs. conține următoarele fișiere sub folderul <Project> \Bin\Debug

    • <PackageName> folder: Numele folderului este același cu cel pe care l-ați schimbat pentru numele folderului pachetului dvs. la pasul 2.g al acestei secțiuni (Pasul 5: Definiți codul personalizat pentru pachetul dvs.). Acest folder conține toate soluțiile, date de configurare, fișiere plate și conținuturile pentru pachetul dvs.

    • <PackageName>.dll: asamblarea conține codul particularizat pentru pachetul dvs. În mod implicit, numele ansamblului este identic cu numele proiectului dvs. Visual Studio.

      Următorul pas este să implementați pachetul.

Implementați un pachet

După ce creați un pachet, îl puteți implementa pe instanța Dataverse utilizând fie instrumentul Package Deployer sau Windows PowerShell.

Instrumentul Package Deployer este distribuit ca parte a pachetului Microsoft.CrmSdk.XrmTooling.PackageDeployment NuGet. Pentru a descărca instrumentul Package Deployer, consultați Descărcați instrumente de la NuGet.

Pentru informații detaliate, consultați Implementați pachete utilizând Package Deployer sau Windows PowerShell.

Cele mai bune practici pentru crearea și implementarea pachetelor

În timp ce creează pachete, dezvoltatorii trebuie să se asigure că asamblările de pachete sunt semnate.

În timpul implementării pachetelor, administratorii Dataverse trebuie să facă:

  • Insistați asupra unei asamblări de pachet semnat, astfel încât să puteți urmări o asamblare înapoi la sursa sa.
  • Să testeze pachetul pe o instanță pre-producție (preferabil o imagine în oglindă a instanței de producție), înainte de a-l rula pe o instanță de producție.
  • Să facă o copie a instanței de producție înainte de a implementa pachetul.

Consultați și

Instrumentul de împachetare soluții

Notă

Ne puteți spune care preferințele dvs. lingvistice pentru documentație? Răspundeți la un chestionar scurt. (rețineți că acest chestionar este în limba engleză)

Chestionarul va dura aproximativ șapte minute. Nu sunt colectate date personale (angajament de respectare a confidențialității).