Kopīgot, izmantojot


Izveidot pakotnes Package Deployer tool

Package Deployer ļauj administratoriem izvietot pakotnes Microsoft Dataverse instancēs. Package Deployer pakotnē var būt ietverts jebkurš no šiem vienumiem vai visi:

Note

Ir cits pakotnes tips, ko sauc par spraudņa pakotni. Šāda veida pakotne ir no spraudņa atkarīgām montāžas komplektiem, un tai nav attiecību ar Package Deployer pakotnēm.

Priekšnoteikumi

  • Pārliecinieties, vai visi risinājumi un pārējie faili, ko vēlaties iekļaut pakotnē, ir gatavi.
  • Visual Studio 2019. gads vai jaunāka versija, vai Visual Studio Kods.

Procesa pārskats

Lai izveidotu Package Deployer pakotni, veiciet tālāk norādītās darbības.

  • Izveidojiet Visual Studio vai MSBuild projektu
  • Risinājumu un citu failu pievienošana projektam
  • Nodrošināto HTML failu atjaunināšana (nav obligāti)
  • Norādiet pakotnes konfigurācijas vērtības
  • Definējiet pielāgotu kodu pakotnei
  • Būvējiet un izvietojiet pakotni

Šīs darbības ir detalizēti aprakstītas šajā rakstā.

Izveidojiet pakotnes projektu

Pirmā darbība ir izveidot Visual Studio vai MSBuild projektu pakotnei. Lai to izdarītu, izstrādes datorā jābūt instalētam vienam no diviem pieejamajiem rīku paplašinājumiem. Ja izmantojat Visual Studio Code, instalējiet Microsoft Power Platform CLI. Pretējā gadījumā, ja izmantojat Visual Studio 2019 vai jaunāku versiju, instalējiet Power Platform rīkus Visual Studio.

Tālāk atlasiet atbilstošo cilni, lai uzzinātu, kā izveidot projektu, izmantojot vēlamo rīka paplašinājumu. Abi rīki izvada projektu līdzīgā formātā.

Izpildiet pac Pakotnes init , lai izveidotu sākotnējo pakotni. Papildu informācija: pac pakotne

pac package init help
pac package init --outputDirectory DeploymentPackage

Iegūtā CLI izvade ietver tālāk redzamās mapes un failus. Šeit kā piemērs tika izmantots mapes "DeploymentPackage".

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

Izveidotajā projektā atrodiet ImportConfig.xml konfigurācijas failu mapē PkgAssets un failu PackageImportExtension.cs. Jūs modificēsit šos failus, kā aprakstīts tālāk šajā rakstā.

Pievienojiet pakotnes failus

Kad esat izveidojis pakotnes projektu, varat sākt pievienot risinājumus un citus failus projektā.

Izmantojot CLI, varat pievienot ārējas pakotnes, risinājumus un atsauces uz jūsu pakotnes projektu, izmantojot kādu no pievienotajām apakškomandām. Ievadiet pac package help , lai skatītu apakškomandu sarakstu. Pievienosim risinājumu mūsu pakotnei.

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

Pakotnes konfigurēšana

Definējiet pakotnes konfigurāciju, pievienojot informāciju par jūsu pakotni projekta ImportConfig.xml failā. Skatiet ImportConfig atsauci , lai skatītu izmantojamo derīgo elementu un atribūtu piemēru un aprakstus.

Pievienojiet pielāgotu kodu

Varat pievienot pielāgotu kodu, kas tiek izpildīts pirms pakotnes importēšanas vidē, tās laikā un pēc tam. Lai to izdarītu, izpildiet norādījumus.

  1. Rediģējiet PackageTemplate.cs (vai PackageImportExtension.cs) failu projekta saknes mapē.

  2. C# failā varat:

    1. Ievadiet pielāgoto kodu, kas jāizpilda, kad pakotne tiek inicializēta ignorēšanas metodes InitializeCustomExtension definīcijā.

      Šo metodi var izmantot, lai lietotājiem, vadot pakotni, ļautu izmantot izpildlaika parametrus. Kā izstrādātājs jūs varat pievienot jūsu pakotnei jebkura izpildlaika parametra atbalstu, izmantojot RuntimeSettings rekvizītu, ja vien jums ir kods tā apstrādei, pamatojoties uz lietotāja ievadi.

      Piemēram, šāds parauga kods iespējot izpildlaika parametru ar nosaukumu SkipChecks pakotnei, kurai ir divas iespējamās vērtības: patiesa vai nepatiesa. Parauga koda pārbaudes, ja lietotājs ir norādījis izpildlaika parametrus Package Deployer palaišanas laikā (izmantojot komandrindu vai PowerShell), attiecīgi apstrādā informāciju. Ja, izpildot pakotni, lietotājs nav norādījis izpildlaika parametru, šī RuntimeSettings rekvizīta vērtība nebūs spēkā.

      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 kods ļauj administratoram izmantot komandrindu vai Import-CrmPackage cmdlet, lai norādītu, vai izlaist drošības pārbaudes, izpildot rīku, Package Deployer, lai importētu pakotni. Papildinformācijai: Pakotņu izvietošana, izmantojot Package Deployer un Windows PowerShell

    2. Ievadiet pielāgotu kodu, kas jāizpilda, pirms risinājumi tiek importēti, izmantojot PreSolutionImport ignorēšanas metodes definīciju, lai norādītu vai pārlabotu pielāgojumus, atjauninot norādīto risinājumu mērķa Dataverse instancē, kā arī to, vai automātiski aktivizēt spraudņus un darbplūsmas.

    3. Izmantojiet ignorēšanas metodes definīciju, RunSolutionUpgradeMigrationStep lai veiktu datu transformāciju vai jaunināšanu starp divām risinājuma versijām Šī metode tiek izsaukta tikai tad, ja risinājums, kuru importējat, jau ir pieejams mērķa Dataverse instancē.

      Šī funkcija sagaida tālāk norādītos parametrus:

      Parametrs Apraksts
      solutionName Risinājuma nosaukums
      oldVersion Vecā risinājuma versijas numurs
      newVersion Jaunā risinājuma versijas numurs
      oldSolutionId Vecā risinājuma GUID.
      newSolutionId Jaunā risinājuma GUID.
    4. Ievadiet pielāgoto kodu, kas jāizpilda, pirms risinājuma importēšana tiek pabeigta BeforeImportStage metodes pārlabošanas definīcijā. Pirms risinājuma importēšanas pabeigšanas datu paraugs un daži izplātie faili risinājumam, kas norādīti ImportConfig.xml failā, tiek importēti.

    5. Pārlabojiet pašlaik atlasīto valodu konfigurācijas datu importēšanai, izmantojot ignorēšanas metodes definīciju OverrideConfigurationDataFileLanguage. Ja norādītās valodas norādītais lokalizācijas ID (LCID) pakotnes pieejamo valodu sarakstā nav atrodams, tiek importēts noklusējuma datu fails.

      ImportConfig.xml faila <cmtdatafiles> mezglā ir norādītas konfigurācijas datu pieejamās valodas. Noklusējuma konfigurācijas datu importēšanas fails ir norādīts crmmigdataimportfile atribūtā, failā ImportConfig.xml.

      Datu pārbaužu izlaišana (OverrideDataImportSafetyChecks = true) šajā gadījumā var būt efektīva, ja esat pārliecināts, ka mērķa Dataverse instancē nav datu.

    6. Ievadiet pielāgoto kodu, kas jāizpilda, pēc importēšana tiek pabeigta AfterPrimaryImport>metodes pārlabošanas definīcijā. Atlikušie izplātie faili, kas netika importēti agrāk, pirms tika sākta risinājuma importēšana, tiek importēti tagad.

    7. Mainiet pakotņu mapes noklusējuma nosaukumu uz vēlamo pakotnes nosaukumu. Lai to izdarītu, pārdēvējiet PkgFolder (vai PkgAssets) mapi Risinājuma pārlūkar rūtī, un pēc tam rediģējiet rekvizīta GetImportPackageDataFolderName atgriezto vērtību.

      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. Mainiet pakotnes nosaukumu, rediģējot atgriezto vērtību GetNameOfImport rekvizītā.

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

      Šī atgrieztā vērtība ir pakotnes nosaukums, kas tiek parādīts Dynamics 365 Package Deployer vedņa pakotnes atlases lapā.

    9. Mainiet pakotnes aprakstu, rediģējot atgriezto vērtību GetImportPackageDescriptionText rekvizītā.

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

      Šī atgrieztā vērtība ir pakotnes apraksts, kas tiek parādīts līdzās pakotnes nosaukumam vedņa pakotnes atlases lapā Package Deployer .

    10. Mainiet pakotnes garo nosaukumu, rediģējot atgriezto vērtību GetLongNameOfImport rekvizītā.

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

      Pēc instalējamās pakotnes atlasīšanas pakotnes garais nosaukums tiek parādīts nākamajā lapā.

  3. Turklāt pakotnē ir pieejamas šādas funkcijas un mainīgie:

    Nosaukums/vārds, uzvārds Veids Apraksts
    CreateProgressItem(String) Function Izmanto, lai izveidotu jaunu progresa elementu lietotāja interfeisā (UI).
    RaiseUpdateEvent(String, ProgressPanelItemStatus) Function Tiek izmantots, lai atjauninātu sarunas radīto progresu CreateProgressItem(String).

    ProgressPanelItemStatus ir uzskaitījums ar šādām vērtībām:

    Darbojas = 0
    Pabeigta = 1
    Neizdevās = 2
    Brīdinājums = 3
    Nav zināms = 4
    RaiseFailEvent(String, Exception) Function Izmanto, lai neizdotos pašreizējā statusa importēšanā ar izņēmuma ziņojumu.
    IsRoleAssoicatedWithTeam(Guid, Guid) Function Izmanto, lai noteiktu, vai loma ir saistīta ar noteiktu darba grupu.
    IsWorkflowActive(Guid) Function Izmanto, lai noteiktu, vai noteiktā darbplūsma ir aktīva.
    PackageLog Klases rādītājs Rādītājs uz pakotnes inicializēto reģistrēšanas interfeisu. Šo interfeisu izmanto pakotne, lai reģistrētu ziņojumus un izņēmumus pakotnes žurnālfailā.
    RootControlDispatcher Rekvizīts Dispečeru interfeiss, kas tiek izmantots, lai nodrošinātu jūsu kontroli, veicot pakotnes izvietošanu, lai padarītu to par savu UI. Izmantojiet šo interfeisu, lai aplauztu visus UI elementus vai komandas. Pirms šī mainīgā izmantošanas ir svarīgi pārbaudīt, vai tajā nav vērtību Null, jo tas, iespējams, nav iestatīts uz vērtību.
    CrmSvc Rekvizīts Rādītājs uz CrmServiceClient klasi, kas ļauj pakotnei adresēt Dynamics 365 pakotnes iekšienē. Izmantojiet šo rādītāju, lai pārlabotajās metodēs izpildītu SDK metodes un citas darbības.
    DataImportBypass Rekvizīts Norādiet, vai Dynamics 365 Package Deployer izlaidīs visas datu importēšanas operācijas, piemēram, Dataverse datu paraugu, plakanos faila datus un datus, kas eksportēti no Konfigurācijas migrācijas rīka. Norādiet patiess vai aplams. Noklusējuma vērtība ir false.
    OverrideDataImportSafetyChecks Rekvizīts Norādiet, vai Dynamics 365 Package Deployer apiet dažas drošības pārbaudes, kas palīdz uzlabot importēšanas veiktspēju. Norādiet true vai false. Noklusējuma vērtība ir false.

    Šis rekvizīts ir jāiestata tikai tad true , ja mērķa Dataverse instancē nav datu.
  4. Saglabājiet savu projektu. Nākamais solis ir pakotnes būvēšana.

Būvēšana un izvietošana

Nākamajās sadaļās ir aprakstīts, kā izveidot un izvietot pakotni.

Būvējums

Pakotnes izveide ir aprakstīta tālāk atkarībā no tā, kuru rīku izmantojat.

Lai izveidotu pakotni, kas izveidota ar CLI, jūs varētu ielādēt .csproj failu Visual Studio, bet tā vietā mēs izmantosim komandu dotnet un MSBuild. Tālāk redzamajā piemērā tiek pieņemts, ka darba direktorijā ir *.csproj fails.

> dotnet publish

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

Varat arī skatīt iebūvētās pakotnes detalizētu informāciju.

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

Jūsu pakotne sastāv no šādiem failiem <Projekts>\Bin\Debug mapē.

  • <Mape PackageName> : mapes nosaukums ir tāds pats kā pakotnes mapes nosaukums solis 2.g šajā sadaļāPievienot pielāgotu kodu . Šī mape satur visus risinājumus, konfigurāciju datus, plakanos failus un pakotnes saturu.

Note

Iespējams, redzēsit .NET mapi (piemēram, net472), kurā ir iekļauta failu publicēšanas mape. Jūsu DLL un citi projekta faili ir pdpublish mapē.

  • <PackageName.DLL>: montāža satur jūsu pakotnes pielāgoto kodu. Pēc noklusējuma montāžas nosaukums ir tāds pats kā projekta nosaukums.

Izvietot

Pēc pakotnes izveidošanas to var izvietot Dataverse instancē, piemēram, izmantojot Package Deployer rīku vai Windows PowerShell.

Paraugprakse

-Tālāk uzskaitīti daži ieteikumi, kā sekot, strādājot ar pakotņu Package Deployer pakotnēm.

Pakotņu izveide

Veidojot pakotnes, izstrādātājiem ir:

  • Pārliecinieties, ka paku komplekti ir parakstīti.

Pakotņu izvietošana

Izvietojot pakotnes, Dataverse administratoriem jāveic šādas darbības:

  • Pieprasiet parakstītus pakotņu komplektus , lai jūs varētu izsekot montāžai līdz tās avotam.
  • Pirms palaišanas uz ražošanas instance pārbaudiet iepakojumu pirmsražošanas instancē, vēlams, ražošanas instance spoguļattēlu.
  • Dublējiet ražošanas instance pirms pakotnes izvietošanas.

Skatiet arī

Risinājumu pakotāja rīks