Paketų kūrimas „Package Deployer“ įrankiui

„Package Deployer“ suteikia administratoriams galimybę diegti paketus „Microsoft Dataverse“ egzemplioriuose. Paketą Package Deployer gali sudaryti bet kuris iš tolimesnių:

  • Vienas arba keli Dataverse sprendimo failai.
  • Paprasti failai arba eksportuotų konfigūracijos duomenų failas iš konfigūravimo perkėlimo įrankio. Daugiau informacijos apie įrankį žr. Konfigūravimo duomenų perkėlimas tarp egzempliorių ir organizacijų naudojant konfigūravimo perkėlimo įrankį.
  • Pasirinktinis kodas, kuris gali būti vykdomas prieš diegiant, diegimo metu arba įdiegus paketą „Dataverse“ egzemplioriuje.
  • HTML turinys, susijęs su konkrečių paketu, kuris gali būti rodomas diegimo proceso pradžioje arba pabaigoje. Šis turinys gali būti naudingas pateikti sprendimų ir failų, kurie visuotinai diegiami, aprašą pakete.

Pastaba.

Yra kitas paketo tipas, vadinamas priedo paketu. Tokio tipo paketas skirtas nuo priedų priklausomiems rinkiniams ir neturi ryšio su Package Deployer paketais.

Būtinosios sąlygos

  • Įsitikinkite, kad turite visus sprendimą ir kitus failus, kuriuos norite įtraukti į paketą.
  • Visual Studio 2019 m. ar vėliau, arba Visual Studio kodas.

Proceso apžvalga

Norėdami sukurti Package Deployer paketą, atlikite šiuos veiksmus.

  • Kurti Visual Studio ar MSBuild projektą
  • Į projektą įtraukite sprendimų ir kitų failų
  • Teikiamų HTML failų naujinimas (pasirinktinis)
  • Nustatykite paketo konfigūracijos reikšmes
  • Nurodykite pasirinktinį paketo kodą
  • Paketo komponavimas ir visuotinis diegimas

Šie veiksmai išsamiai aprašyti šiame straipsnyje.

Kurti projekto paketą

Pirmasis veiksmas yra sukurti paketo Visual Studio ar MSBuild projekte. Norėdami tai atlikti, savo programavimo kompiuteryje turite įdiegti vieną iš dviejų galimų įrankių plėtinių. Jei naudojate Visual Studio Code, įdiekite Microsoft Power Platform CLI. Kitu atveju, jei naudojate Visual Studio 2019, įdiekite Power Platform įrankius Visual Studio. Įrankių Power Platform plėtinys šiuo metu pasiekiamas tik 2019 m Visual Studio . Tačiau sukurtą projektą galima sukurti naudojant Visual Studio 2019 m. arba naujesnę versiją.

Toliau pasirinkite atitinkamą skirtuką ir sužinokite, kaip sukurti projektą naudojant norimą įrankių plėtinį. Abu įrankiai išveda projektą panašiu formatu.

Vykdykite pac pirminį paketą komandą norėdami sukurti pradinį paketą. Daugiau informacijos: pac paketas

pac package init help
pac package init --outputDirectory DeploymentPackage

Gautoje CLI išvestyje yra aplankai ir failai, rodomi toliau. Aplanko pavadinimas „Deployment Folderage“ čia buvo naudojamas kaip pavyzdys.

C:.
└───DeploymentPackage
    │   DeploymentPackage.csproj
    │   PackageImportExtension.cs
    │
    └───PkgAssets
            ImportConfig.xml
            manifest.ppkg.json

Sukurtame projekte aplanke PkgAssets raskite konfigūracijos failą ImportConfig.xml ir failą PackageImportExtension.cs. Modifikuosite šiuos failus, kaip aprašyta toliau šiame straipsnyje.

Naujo paketo failus

Sukūrę paketo projektą, galite pradėti į tą projektą įtraukti sprendimų ir kitų failų.

Naudodami CLI, galite įtraukti išorinių paketų, sprendimų ir nuorodų į savo paketo projektą naudodami vieną įtraukti papildomas komandas. Įveskite pac package help kad pamatytumėte antriniųcomdų sąrašą. Į savo paketą įtraukkime sprendimą.

> pac package add-solution help

Commands:
Usage: pac package add-solution --path [--import-order] [--skip-validation] [--publish-workflows-activate-plugins] [--overwrite-unmanaged-customizations] [--import-mode] [--missing-dependency-behavior] [--dependency-overrides]

> cd .\DeploymentPackage\
> pac package add-solution --path ..\TestSolution_1_0_0_1_managed.zip

The item was added successfully.

Paketo konfigūravimas

  1. Nustatykite paketo konfigūraciją įtraukdami informaciją apie paketą ImportConfig.xml failą projekte. Atidarykite failą redagavimui. Šiame sąraše pateikiama informacija apie kiekvieną parametrą ir mazgą konfigūracijos faile.

    installsampledata
    True ar false. Jei true, „Dataverse“ egzemplioriuje įdiegiami pavyzdiniai duomenys. Tai yra patys pavyzdiniai duomenys, kuriuos galite įdiegti srityje Parametrai>Duomenų valdymas esančioje Dataverse.

    waitforsampledatatoinstall
    Teisinga arba klaidinga. Jei teisinga ir jei " installsampledata reikšmė taip pat yra teisinga, prieš pradedant paketo diegimą laukiama, kol bus įdiegti pavyzdiniai duomenys.

    Pastaba.

    Įsitikinkite, kad installsampledata reikšmė yra teisinga, jei nustatyta waitforsampledatatoinstall reikšmė yra teisinga.

    agentdesktopzipfile
    Išpakuojamo zip failo vardas. Jei čia nurodysite .zip failo vardą, paketo diegimo proceso metu jis bus įtrauktas ekraną, kuriame raginama pasirinkti vietą, kurioje norite išpakuoti failo turinį.

    Šis atributas naudojama kuriant „Unified Service Desk for Dynamics 365“ paketus. Daugiau informacijos apie „Unified Service Desk“ žr. „Unified Service Desk 3.0“ administravimo vadove.

    agentdesktopexename
    .exe arba .msi failo, esančio zip faile, vardas arba URL, kurį reikia naudoti diegimo proceso pabaigoje.

    Tai yra atributas naudojamas kuriant „Unified Service Desk“ paketus.

    crmmigdataimportfile
    Numatytojo konfigūracijos duomenų failo (.zip), eksportuojamo naudojant konfigūravimo perkėlimo įrankį, vardas.

    • Pagal lokalės ID (LCID), nurodytą naudojant naujus vykdymo parametrus paleidus „Package Deployer“, taip pat galite importuoti lokalizuotą konfigūracijos duomenų failo versiją. Naudokite <cmtdatafile> mazgą (paaiškinta toliau), jei norite nurodyti lokalizuotas konfigūracijos duomenų failo versijas pakete, o tada naudokite OverrideConfigurationDataFileLanguage metodą (paaiškinta tolau), kad nurodytumėte konfigūracijos duomenų failo importavimo logiką pagal lokalės ID, nurodytą naudojant vykdymo parametrus. Vienu metu naudodami paketą negalite importuoti daugiau nei vieno konfigūracijos duomenų failo.

    • Jei Dataverse (vietinis) konfigūracijos duomenų faile yra vartotojo informacija, o šaltinio ir paskirties egzemplioriai yra tame pačiame "Active Directory" domene, vartotojo informacija importuojama į paskirties Dataverse Dataverse egzempliorių. Norėdami importuoti vartotojo informaciją į „Dataverse“ (vietinė versija) egzempliorių kitame domene, turite įtraukti vartotojo susiejimo failą (.xml), sugeneruotą naudojant jūsų projekto konfigūravimo perkėlimo įrankį, ir nurodyti jį kartu su konfigūracijos duomenų failu naudojant usermapfilename atributą, esantį <cmtdatafile> mazge, kuris aprašytas toliau. Vartotojo informacijos negalima importuoti į Dataverse egzempliorius.
      <solutions> mazgas
      Jame yra <configsolutionfile> mazgų, apibūdinančių importuojamus sprendimus, masyvas. Sprendimų tvarka šiame mazge atitinka tvarką, kuria sprendimai bus importuojami į tikslinį „Dataverse“ egzempliorių.

      <configsolutionfile> mazgas
      Šį mazgą naudokite po <solutions>mazgo, kad nurodytumėte atskirus sprendimus ir toliau nurodytą informaciją apie kiekvieną importuojamą sprendimą:

    • solutionpackagefilename: Nurodykite .zip failo pavadinimą Jūsų sprendime. Būtina.

    • overwriteunmanagedcustomizations: Nurodykite, ar norite perrašyti visus nevaldomus tinkinimus, kai importuojate sprendimą, kuris jau yra paskirties „Dynamics 365“ egzemplioriuje. Šis atributas yra pasirinktinis ir, jei nenurodysite šio atributo, pagal numatytuosius nustatymus nevaldomieji tinkinimai esamame sprendime išlaikomi tiksliniame "Dynamics 365" egzemplioriuje.

    • publishworkflowsandactivateplugins: Nurodykite, ar norite publikuoti darbo eigas ir aktyvuoti priedus paskirties „Dynamics 365“ egzemplioriuje, kai sprendimas bus importuotas. Šis atributas yra pasirinktinis ir, jei nenurodysite nenurodysite šio atributo, pagal numatytuosius nustatymus darbo eigos publikuojamos ir priedai suaktyvinami po to, kai sprendimas importuojamas į tikslinį "Dynamics 365" egzempliorių.

      Įtraukdami <configsolutionfile>mazgus, į paketą galite įtraukti kelis sprendimo failų pavadinimus. Pavyzdžiui, jei norite importuoti tris sprendimo failus, juos įtraukite tokiu būdu toliau:

    
    <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> mazgas
    Jame yra <configimportfile> ir <zipimportdetails> mazgų, naudojamų nurodyti importuojamus atitinkamai atskirus failus ir zip failus, masyvas.

    <configimportfile> mazgas
    Naudokite šį mazgą po <configimportfile> mazgo, norėdami aprašyti į „Dataverse“ importuojamą failą. Įtraukdami <configimportfile>mazgus, į paketą galite įtraukti kelis failus.

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

    Toliau pateikiamas palaikomų atributų sąrašas:

    Atributas Aprašą
    filename Failo, kuriame yra importuojami duomenys, pavadinimas. Jei failas yra .zip failas, <zipimportdetails> mazgas turi turėti <zipimportdetail> mazgą kiekviename .zip faile esančiame faile.
    filetype Ši vertė gali būti csv, xml arba zip.
    associatedmap „Dataverse“ importuojamų duomenų struktūros, naudojamos su šiuo failu, pavadinimas. Jei nenurodytas, šiam failui bandoma naudoti sistemos nustatytą importuojamų duomenų struktūros pavadinimą.
    importtoentity Tai gali būti .exe failo, esančio zip faile, vardas, URL arba .msi failas, naudojamas diegimo proceso pabaigoje.
    datadelimiter Importuojamame faile naudojamo duomenų skyriklio pavadinimas. Leistinos reikšmės yra viengubos arba dvigubos kabutės.
    fielddelimiter Importuojamame faile naudojamo lauko skyriklio pavadinimas. Leistinos reikšmės yra kablelis, dvitaškis arba viena citata.
    enableduplicatedetection Nurodo, ar importuojant duomenis aktyvuoti dubliavimo aptikimo taisykles. Galimos reikšmės yra teisinga arba klaidinga.
    isfirstrowheader Naudojama pažymėti, kad pirmoje importuojamo failo eilutėje yra laukų pavadinimai. Leidžiamos reikšmės yra true arba false.
    isrecordownerateam Nurodo, ar importuojamo įrašo savininkas turi būti komanda. Leidžiamos reikšmės yra true arba false.
    owneruser Nurodo vartotojo, kuriam turėtų priklausyti įrašai, ID. Numatytoji reikšmė yra šiuo metu prisijungęs vartotojas.
    waitforimporttocomplete Jei true, prieš tęsdama darbą sistema laukia, kol importavimas bus baigtas. Jei false, užduotys perkeliamos į eilę ir darbas tęsiamas.

    <zipimportdetails> mazgas
    Šiame mazge yra <zipimportdetail>mazgų, aprašančių failus, įtrauktus į zip failą, kuris naudojamas importuojant į „Dynamics 365“ aplinką, masyvas.

    <zipimportdetail> mazgas
    Naudokite šį mazgą po <zipimportdetails>mazgo, norėdami pateikti informaciją apie atskirą failą .zip faile, nurodytą <configimportfile> mazge.

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

    Palaikomi atributai yra išvardyti toliau:

    Atributas Aprašą
    filename Failo, kuriame yra importuojami duomenys, pavadinimas.
    filetype Ši vertė gali būti csv ar xml.
    importtoentity Tai gali būti .exe failo, esančio zip faile, vardas, URL arba .msi failas, naudojamas diegimo proceso pabaigoje.

    <filesmapstoimport> mazgas
    Šiame mazge yra importuojamų <configmapimportfile> mazgų masyvas. Žemėlapio failų tvarka šiame mazge nurodo jų importavimo tvarką. Informacijos apie duomenų struktūras žr. Importuojamų duomenų struktūrų kūrimas.

    <configimportmapfile> mazgas
    Naudokite šį mazgą po <filesmapstoimport> mazgo, norėdami pateikti informaciją apie atskirą struktūros failą, importuojamą į „Dataverse“.

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

    <cmtdatafiles> mazgas
    Šiame mazge yra mazgų <cmtdatafile> masyvas, kuriame yra lokalizuota importuotino konfigūracijos duomenų failo versija.

    <cmtdatafile> mazgas
    Naudokite šį mazgą po <cmtdatafiles> mazgo, norėdami nurodyti lokalizuotus konfigūracijos duomenų failus kartu su lokalės ID (privaloma) ir vartotojo informacijos struktūros failu (neprivaloma). Pavyzdžiui:

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

    Galite nurodyti savo pasirinktinę logiką OverrideConfigurationDataFileLanguage metode (paaiškinta toliau), jei atsižvelgiant į lokalės ID reikšmę, nurodytą naudojant vykdymo parametrus (paaiškinta toliau), norite importuoti lokalizuotą konfigūracijos duomenų failą, o ne numatytąjį (nurodytas crmmigdataimportfile).

  2. Pasirinkite Įrašyti viską.

    Šis xml nurodo failo pavyzdžio ImportConfig.xml turinį.

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

Įtraukti tinkintą kodą

Galite įtraukti pasirinktinį kodą, kuris vykdomas prieš importuotą paketą, jo metu ir po jo į aplinką. Tam, kad tą atliktumėte, vadovaukitės šiomis instrukcijomis.

  1. Redaguokite PackageTemplate.cs (arba PackageImportExtension.cs) failą projekto šakniniame aplanke.

  2. C# faile galite:

    1. Įveskite pasirinktinį kodą, kuris bus vykdomas, kai paketas inicijuojamas InitializeCustomExtension pakeitimo metodo apibrėžime.

      Šį metodą galima naudoti, kad paleidžiant paketą vartotojai galėtų naudoti vykdymo parametrus. Būdami kūrėju, naudodami RuntimeSettings ypatybę į paketą galite įtraukti bet kurio vykdymo parametrą palaikymą, jei tik yra kodas, apdorojantis jį atsižvelgiant į vartotojo įvestį.

      Pavyzdžiui, šis pavyzdinis kodas įjungia paketo vykdymo laiko parametrą, vadinamą SkipChecks ir turintį dvi galimas reikšmes: teisinga arba klaidinga. Pavyzdinis kodas tikrina, ar vartotojas vykdydamas „Package Deployer“ nurodė vykdymo parametrus (naudodamas komandų eilutę arba „“PowerShell“), o tada atitinkamai apdoroja informaciją. Jei vykdydamas paketą vartotojas nenurodė jokio vykdymo parametro, RuntimeSettings ypatybės reikšmė bus neapibrėžta.

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

      Šis kodas leidžia administratoriui naudoti komandų eilutę arba Import-CrmPackage „cmdlet“, kad nurodytų, ar paleidžiant Package Deployer įrankį paketo importavimui praleisti saugos patikras. Daugiau informacijos: Paketų diegimas naudojant „Package Deployer“ ir „Windows PowerShell“

    2. Įveskite pasirinktinį kodą, kuris bus vykdomas prieš importuojant sprendimus PreSolutionImport perrašymo metodo apibrėžime, kad nustatytumėte, ar palikti ar perrašyti tinkinimus atnaujinant nurodytą sprendimą paskirties „Dataverse“ egzemplioriuje ir ar automatiškai aktyvuoti priedus ir darbo eigas.

    3. Nepaisymo metodo apibrėžimo RunSolutionUpgradeMigrationStep naudojimas norint atlikti duomenų transformaciją arba naujinti versiją tarp dviejų sprendimo versijų Šis metodas vadinamas tik tuo atveju, jei importuojamas sprendimas jau yra paskirties Dataverse egzemplioriuje.

      Ši funkcija laukia šių parametrų:

      Parametras Aprašas
      solutionName Sprendimo pavadinimas
      oldVersion Seno sprendimo versijos numeris
      newVersion Naujo sprendimo versijos numeris
      oldSolutionId Seno sprendimo GUID.
      newSolutionId Naujo sprendimo GUID.
    4. Įveskite pasirinktinį kodą, kuris bus vykdomas prieš baigiant sprendimo importavimą BeforeImportStage metodo pakeitimo apibrėžime. Prieš baigiant sprendimo importavimą, importuojami pavyzdiniai duomenys ir tam tikri paprastieji sprendimų failai, nurodyti ImportConfig.xml faile.

    5. Perrašyti šiuo metu pasirinktą konfigūracijos duomenų importavimo kalbą naudojant perrašymo metodo apibrėžimą OverrideConfigurationDataFileLanguage. Jei nurodytos kalbos nurodytos lokalės ID (LCID) nerandate galimų paketo kalbų sąraše, importuojamas numatytasis duomenų failas.

      Galimas konfigūravimo duomenų kalbas galite nurodyti <cmtdatafiles> mazge, esančiame ImportConfig.xml faile. Numatytasis konfigūravimo duomenų importavimo failas nurodomas crmmigdataimportfile atribute, esančiame ImportConfig.xml faile.

      Duomenų patikrinimų praleidimas (OverrideDataImportSafetyChecks = true) čia gali būti veiksmingas, jei esate tikri, kad tiksliniame Dataverse egzemplioriuje nėra jokių duomenų.

    6. Įveskite pasirinktinį kodą, kuris bus vykdomas baigus sprendimo importavimą AfterPrimaryImport> metodo pakeitimo apibrėžime. Likę plokštieji failai, kurie nebuvo importuoti anksčiau, prieš pradedant sprendimo importavimą, importuojami dabar.

    7. Pakeiskite numatytąjį paketo aplanko pavadinimą iš PkgFolder į norimą paketo pavadinimą. Norėdami tai atlikti, pervadinkite PkgFolder (ar PkgAssets) aplankas Sprendimo naršyklės juostoje ir tada redaguokite grįžtamąją vertę ypatybėje 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. Pakeiskite paketo pavadinimą redaguodami grąžinamą reikšmę ypatybėje GetNameOfImport.

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

      Ši grąžinta reikšmė yra jūsų paketo pavadinimas, rodomas "Dynamics 365 Package Deployer " vedlio paketo pasirinkimo puslapyje.

    9. Pakeiskite paketo aprašymą redaguodami grąžinamą reikšmę ypatybėje GetImportPackageDescriptionText.

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

      Ši grąžinta reikšmė yra paketo aprašas, rodomas šalia paketo pavadinimo vedlio paketo Package Deployer pasirinkimo puslapyje.

    10. Pakeiskite paketo ilgąjį pavadinimą redaguodami grąžinamą reikšmę ypatybėje GetLongNameOfImport.

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

      Paketo ilgasis pavadinimas bus rodomas kitame puslapyje, kai pasirinksite diegiamą paketą.

  3. Be to, darbui su paketu galima naudoti šią funkciją ir kintamuosius:

    Vardas ir pavardė Tipas Aprašas
    CreateProgressItem(String) Funkcija Naudojama kurti naują eigos elementą vartotojo sąsajoje (UI).
    RaiseUpdateEvent(String, ProgressPanelItemStatus) Funkcija Naudojama atnaujini eigai, sukurtai pateikus CreateProgressItem(String) kvietimą.

    ProgressPanelItemStatus yra sąrašas su šiomis reikšmėmis:

    Darbas = 0
    Atlikta = 1
    Nepavyko = 2
    Įspėjimas = 3
    Nežinoma = 4
    RaiseFailEvent(String, Exception) Funkcija Naudojama nutraukti esamos būsenos importavimui su klaidos pranešimu.
    IsRoleAssoicatedWithTeam(Guid, Guid) Funkcija Naudojama nustatyti, ar vaidmuo yra susijęs su nurodyta komanda.
    IsWorkflowActive(Guid) Funkcija Naudojama nustatyti, ar nurodyta darbo eiga yra aktyvi.
    PackageLog Klasės rodyklė Tai yra rodyklė į paketo inicijuotą registracijos sąsają. Šią sąsają naudoja paketas pranešimų ir klaidų registracijai paketo žurnalo faile.
    RootControlDispatcher Ypatybė Tai yra skirstymo sąsaja, naudojama kontroliuoti nuosavai UI paketo diegimo metu. Naudokite šią sąsają išdėstyti bet kuriems UI elementams arba komandoms. Prieš naudojant šį kintamąjį svarbu patikrinti, ar jame nėra neapibrėžtų reikšmių, nes jis gali būti nenustatytas kaip reikšmė.
    CrmSvc Ypatybė Tai yra rodyklė į CrmServiceClient klasę, kuri leidžia paketui kreiptis į „Dynamics 365“ iš paketo. Naudokite ją vykdyti SDK metodams ir kitiems veiksmams perrašytuose metoduose.
    DataImportBypass Ypatybė Naudokite norėdami nurodyti, ar Dynamics 365 Package Deployer turi praleisti visas duomenų importavimo operacijas, pvz., Dataverse pavyzdinių duomenų, paprastųjų failų duomenų ir duomenų, eksportuotų iš konfigūravimo perkėlimo įrankio, importavimo operacijas. Nurodykite „teisinga“ arba „klaidinga“. Numatytoji reikšmė yra false.
    OverrideDataImportSafetyChecks Ypatybė Nurodykite, ar ""Dynamics 365 Package Deployer "" apeina kai kurias saugos patikras, kurios padeda pagerinti importavimo efektyvumą. Nurodykite true arba false. Numatytoji reikšmė yra false.

    Šią ypatybę true turėtumėte nustatyti tik tuo atveju, jei paskirties Dataverse egzemplioriuje nėra jokių duomenų.
  4. Įrašykite projektą. Kitas veiksmas yra sukurti paketą.

Kurti ir talpinti

Tolesniuose skyriuose aprašoma, kaip sukurti ir įdiegti paketą.

Komponavimo versija

Paketo kūrimas aprašytas toliau, atsižvelgiant į tai, kokį įrankį naudojate.

Norėdami sukurti paketą, sukurtą naudojant CLI, galite įkelti .csproj failą Visual Studio, bet vietoj to naudosime komandą dotnet ir MSBuild. Toliau pateiktame pavyzdyje laikoma, kad darbo kataloge yra *.csproj failas.

> dotnet publish

DeploymentPackage -> C:\Users\peter\Downloads\DeploymentPackage\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip

Galite pasirinktinai peržiūrėti integruoto paketo išsamią informaciją.

> pac package show --package .\bin\Debug\DeploymentPackage.1.0.0.pdpkg.zip

Jūsų paketą sudaro šie failai, esantys aplanke <Projektas>\Bin\Trikčių šalinimo katalogas.

  • <Aplankas> PackageName: aplanko pavadinimas yra toks pat, kaip ir tas, kurį pakeitėte paketo aplanko pavadinime atlikdami šio skyriaus 2.g veiksmą Pridėti pasirinktinį kodą. Šiame aplanke yra visi sprendimai, konfigūravimo duomenys, paprastieji failai ir jūsų paketo turinys.

Pastaba.

Galite matyti .NET aplanką (pvz., net472), kuriame yra pdpublish aplankas. Jūsų DLL ir kiti projekto falai yra pdpublish kataloge.

  • <Paketo pavadinimas>.dll: rinkinyje yra pasirinktinis jūsų paketo kodas. Pagal numatytuosius nustatymus, rinkinio pavadinimas yra toks pats, kaip jūsų projekto pavadinimas.

Diegti

Sukūrę paketą, jį galite įdiegti Dataverse egzemplioriuje naudodami Package Deployer įrankį arba „Windows PowerShell“ ar CLI komandą.

Geriausia praktika

Toliau pateikti keli patarimai dėl geriausios praktikos dirbant su Package Deployer paketais.

Paketų kūrimas

Kurdami paketus kūrėjai turi:

  • Įsitikinkite, kad paketų rinkiniai yra pasirašę.

Paketų talpinimas

Visuotinai diegdami paketus Dataverse administratoriai turi:

  • Reikalauti pasirašyto paketo rinkinio kad jūs galėtumėte atsekti rinkinio šaltinį.
  • Išbandykite paketą su priešgamybiniu egzemplioriumi, pageidautina veidrodiniu gamybos egzempliorius vaizdu, prieš paleisdami jį gamybos egzempliorius.
  • Prieš diegiant paketą sukurti gamybos egzemplioriaus atsarginę kopiją.

Taip pat žr.

Sprendimo pakavimo įrankis