Κοινή χρήση μέσω


Δημιουργία πακέτων για το εργαλείο Package Deployer

Το Package Deployer επιτρέπει στους διαχειριστές να αναπτύξουν πακέτα σε παρουσίες του Microsoft Dataverse. Ένα πακέτο Package Deployer μπορεί να περιλαμβάνει οποιοδήποτε ή όλα εκ των παρακάτω:

  • Ένα ή περισσότερα αρχεία λύσης Dataverse.
  • Ενοποιημένα αρχεία ή αρχείο δεδομένων ρύθμισης παραμέτρων που έχει εξαχθεί από το Εργαλείο Μετεγκατάστασης Ρύθμισης Παραμέτρων. Για περισσότερες πληροφορίες σχετικά με το εργαλείο, δείτε Μεταφορά των δεδομένων ρύθμισης παραμέτρων σε παρουσίες και οργανισμούς με το Configuration Migration tool.
  • Προσαρμοσμένο κώδικα που μπορεί να εκτελείται πριν, κατά τη διάρκεια ή μετά την ανάπτυξη του πακέτου στην παρουσία Dataverse.
  • Περιεχόμενο HTML συγκεκριμένο για το πακέτο που μπορεί να εμφανίζεται στην αρχή και στο τέλος της διαδικασίας ανάπτυξης. Αυτό το περιεχόμενο μπορεί να είναι χρήσιμο για την παροχή μιας περιγραφής των λύσεων και των αρχείων που έχουν αναπτυχθεί στο πακέτο.

Σημείωμα

Υπάρχει ένας άλλος τύπος πακέτου που ονομάζεται πακέτο προσθήκης. Αυτό το είδος πακέτου αφορά συγκροτήσεις που εξαρτώνται από προσθήκες και δεν έχει σχέση με τα πακέτα του Package Deployer.

Προϋποθέσεις

  • Βεβαιωθείτε ότι έχετε έτοιμες όλα τα αρχεία και άλλα αρχεία που θέλετε να συμπεριλάβετε στο πακέτο.
  • Visual Studio 2019 ή μεταγενέστερη έκδοση ή Visual Studio Code.

Επισκόπηση διαδικασίας

Εκτελέστε τα ακόλουθα πέντε βήματα για να δημιουργήσετε ένα πακέτο Package Deployer.

  • Δημιουργήστε ένα έργο Visual Studio ή MSBuild
  • Προσθέστε λύσεις και άλλα αρχεία στο έργο
  • Ενημέρωση αρχείων HTML που παρέχονται (προαιρετικά)
  • Καθορισμός των τιμών ρύθμισης παραμέτρων για το πακέτο
  • Ορισμός προσαρμοσμένου κώδικα για το πακέτο
  • Δημιουργία και ανάπτυξη του πακέτου

Αυτά τα βήματα περιγράφονται αναλυτικά σε αυτό το άρθρο.

Δημιουργία έργου πακέτου

Το πρώτο βήμα είναι η δημιουργία ενός έργου Visual Studio ή MSBuild για το πακέτο. Για να το κάνετε αυτό, πρέπει να έχετε εγκαταστήσει στον υπολογιστή ανάπτυξης μία από τις δύο διαθέσιμες επεκτάσεις εργαλείων. Εάν χρησιμοποιείτε το Visual Studio Code, εγκαταστήστε το Microsoft Power Platform CLI. Διαφορετικά, εάν χρησιμοποιείτε το Visual Studio 2019 ή μεταγενέστερη έκδοση, εγκαταστήστε τα Power Platform Tools για Visual Studio.

Επιλέξτε την κατάλληλη καρτέλα παρακάτω για να μάθετε πώς να δημιουργήσετε ένα έργο με χρήση της επιθυμητής επέκτασης εργαλείου. Και τα δύο εργαλεία εξάγουν το έργο σε παρόμοια μορφή.

Εκτελέστε την εντολή pac package init για να δημιουργήσετε το αρχικό πακέτο. Περισσότερες πληροφορίες: pac package

pac package init help
pac package init --outputDirectory DeploymentPackage

Η έξοδος CLI που προκύπτει περιέχει τους φακέλους και τα αρχεία που εμφανίζονται παρακάτω. Το όνομα φακέλου "DeploymentPackage" χρησιμοποιήθηκε εδώ για παράδειγμα.

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

Στο έργο που δημιουργήθηκε, βρείτε το αρχείο διαμόρφωσης ImportConfig.xml στο φάκελο PkgAssets και το αρχείο PackageImportExtension.cs. Θα τροποποιήσετε αυτά τα αρχεία όπως περιγράφεται παρακάτω σε αυτό το άρθρο.

Προσθήκη αρχείων πακέτου

Αφού δημιουργήσετε ένα έργο πακέτου, μπορείτε να ξεκινήσετε την προσθήκη λύσεων και άλλων αρχείων σε αυτό το έργο.

Όταν χρησιμοποιείτε το CLI, μπορείτε να προσθέσετε εξωτερικά πακέτα, λύσεις και αναφορές στο έργο πακέτου χρησιμοποιώντας μία από τις δευτερεύουσες εντολές προσθήκης. Πληκτρολογήστε pac package help για να δείτε τη λίστα των δευτερευουσών επαφών. Ας προσθέσουμε μια λύση στο πακέτο μας.

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

Ρύθμιση παραμέτρων του πακέτου

Καθορίστε τη ρύθμιση παραμέτρων του πακέτου προσθέτοντας πληροφορίες σχετικά με το πακέτο σας στο αρχείο ImportConfig.xml στο έργο. Ανατρέξτε στην αναφορά ImportConfig για ένα παράδειγμα και για περιγραφές των έγκυρων στοιχείων και χαρακτηριστικών προς χρήση.

Προσθέστε προσαρμοσμένο κώδικα

Μπορείτε να προσθέσετε προσαρμοσμένο κώδικα που εκτελείται πριν, κατά τη διάρκεια και μετά την εισαγωγή του πακέτου σε ένα περιβάλλον. Για να το κάνετε αυτό, ακολουθήστε αυτές τις οδηγίες.

  1. Επεξεργαστείτε το PackageTemplate.csPackageImportExtension.cs) στον ριζικό φάκελο του έργου.

  2. Στο αρχείο C#, μπορείτε να κάνετε τα εξής:

    1. Καταγράψτε τον προσαρμοσμένο κώδικα που θα εκτελεστεί κατά την προετοιμασία του πακέτου στον ορισμό μεθόδου παράκαμψης του InitializeCustomExtension.

      Αυτή η μέθοδος μπορεί να χρησιμοποιηθεί για να επιτρέψετε στους χρήστες να χρησιμοποιούν τις παραμέτρους χρόνου εκτέλεσης κατά την εκτέλεση ενός πακέτου. Ως προγραμματιστής, μπορείτε να προσθέσετε υποστήριξη για οποιαδήποτε παράμετρο χρόνου εκτέλεσης στο πακέτο σας, χρησιμοποιώντας την ιδιότητα RuntimeSettings εφόσον έχετε κώδικα για να την επεξεργαστείτε με βάση τα δεδομένα που εισάγονται από το χρήστη.

      Για παράδειγμα, το ακόλουθο δείγμα κώδικα ενεργοποιεί μια παράμετρο χρόνου εκτέλεσης που καλείται SkipChecks για το πακέτο, η οποία έχει δύο πιθανές τιμές: true ή false. Το δείγμα κώδικα ελέγχει εάν ο χρήστης έχει καθορίσει τις παραμέτρους χρόνου εκτέλεσης κατά την εκτέλεση Package Deployer (είτε χρησιμοποιώντας τη γραμμή εντολών είτε το PowerShell) και, στη συνέχεια, επεξεργάζεται τις πληροφορίες. Εάν δεν καθορίζεται καμία παράμετρος χρόνου εκτέλεσης από το χρήστη κατά την εκτέλεση του πακέτου, η τιμή της ιδιότητας RuntimeSettings θα είναι 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");  
      }  
      

      Αυτός ο κώδικας επιτρέπει στον διαχειριστή να χρησιμοποιεί τη γραμμή εντολών ή το cmdlet Import-CrmPackage για να καθορίσει εάν θα παραλείψετε τους ελέγχους ασφαλείας κατά την εκτέλεση του εργαλείου Package Deployer για την εισαγωγή του πακέτου. Περισσότερες πληροφορίες: Ανάπτυξη πακέτων με χρήση των Package Deployer και Windows PowerShell

    2. Εισαγάγετε προσαρμοσμένο κώδικα για εκτέλεση πριν εισαχθούν οι λύσεις στον ορισμό μεθόδου παράκαμψης του PreSolutionImport για να καθορίσετε εάν θα διατηρούνται ή θα αντικαθίστανται οι προσαρμογές κατά την ενημέρωση της καθορισμένης λύσης σε μια παρουσία προορισμού Dataverse και εάν θα ενεργοποιούνται αυτόματα οι προσθήκες και οι ροές εργασιών.

    3. Χρήση του ορισμού μεθόδου παράκαμψης RunSolutionUpgradeMigrationStep για την εκτέλεση μετασχηματισμού δεδομένων ή την αναβάθμιση μεταξύ δύο εκδόσεων μιας λύσης. Αυτή η μέθοδος καλείται μόνο εάν η λύση που εισάγετε υπάρχει ήδη στην παρουσία του προορισμού Dataverse.

      Αυτή η συνάρτηση αναμένει τις παρακάτω παραμέτρους:

      Παράμετρος Περιγραφή
      solutionName Όνομα της λύσης
      oldVersion Αριθμός έκδοσης της παλαιάς λύσης
      newVersion Αριθμός έκδοσης της νέας λύσης
      oldSolutionId GUID της παλαιάς λύσης.
      newSolutionId GUID της νέας λύσης.
    4. Καταγράψτε τον προσαρμοσμένο κώδικα που θα εκτελεστεί πριν την ολοκλήρωση της εισαγωγής της λύσης στον ορισμό μεθόδου παράκαμψης της μεθόδου BeforeImportStage. Τα δείγματα δεδομένων και ορισμένα απλά αρχεία για τις λύσεις που καθορίζονται στο αρχείο ImportConfig.xml εισάγονται πριν ολοκληρωθεί η εισαγωγή της λύσης.

    5. Παράκαμψη της τρέχουσας επιλεγμένης γλώσσας για την εισαγωγή δεδομένων ρύθμισης παραμέτρων με χρήση του ορισμού μεθόδου παράκαμψης του OverrideConfigurationDataFileLanguage. Εάν το καθορισμένο αναγνωριστικό τοπικών ρυθμίσεων (LCID) της καθορισμένης γλώσσας δεν βρίσκεται στη λίστα με τις διαθέσιμες γλώσσες στο πακέτο, εισάγεται το προεπιλεγμένο αρχείο δεδομένων.

      Καθορίζετε τις διαθέσιμες γλώσσες για τα δεδομένα ρύθμισης παραμέτρων στον κόμβο <cmtdatafiles> στο αρχείο ImportConfig.xml. Το προεπιλεγμένο αρχείο εισαγωγής δεδομένων ρύθμισης παραμέτρων καθορίζεται στο χαρακτηριστικό crmmigdataimportfile στο αρχείο ImportConfig.xml.

      Η παράβλεψη των ελέγχων δεδομένων (OverrideDataImportSafetyChecks = true) μπορεί να είναι αποτελεσματική εδώ, εάν είστε βέβαιοι ότι η παρουσία του προορισμού Dataverse δεν περιέχει δεδομένα.

    6. Καταγράψτε τον προσαρμοσμένο κώδικα που θα εκτελεστεί μετά την ολοκλήρωση της εισαγωγής της λύσης στον ορισμό μεθόδου παράκαμψης της μεθόδου AfterPrimaryImport>. Τα υπόλοιπα απλά αρχεία που δεν είχαν εισαχθεί νωρίτερα, προτού ξεκινήσει η εισαγωγή της λύσης, εισάγονται τώρα.

    7. Αλλάξτε το προεπιλεγμένο όνομα του φακέλου πακέτου στο όνομα του πακέτου που θέλετε. Για να το κάνετε αυτό, μετονομάστε τον φάκελο PkgFolderPkgAssets) στο τμήμα παραθύρου Εξερεύνηση λύσεων και, στη συνέχεια, επεξεργαστείτε την τιμή επιστροφής που βρίσκεται κάτω από την ιδιότητα 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. Αλλάξτε το όνομα του πακέτου με την επεξεργασία της τιμής επιστροφής στην ιδιότητα GetNameOfImport.

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

      Αυτή η επιστρεφόμενη τιμή είναι το όνομα του πακέτου σας που εμφανίζεται στη σελίδα επιλογής πακέτου στον Οδηγό του Dynamics 365 Package Deployer.

    9. Αλλάξτε την περιγραφή του πακέτου με την επεξεργασία της τιμής επιστροφής στην ιδιότητα GetImportPackageDescriptionText.

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

      Αυτή η επιστρεφόμενη τιμή είναι η περιγραφή του πακέτου που εμφανίζεται μαζί με το όνομα του πακέτου στη σελίδα επιλογής πακέτου στον Οδηγό Package Deployer.

    10. Αλλάξτε το μεγάλο όνομα του πακέτου με την επεξεργασία της τιμής επιστροφής στην ιδιότητα GetLongNameOfImport.

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

      Το μεγάλο όνομα πακέτου εμφανίζεται στην επόμενη σελίδα μετά από την επιλογή του πακέτου προς εγκατάσταση.

  3. Επιπλέον, οι παρακάτω συναρτήσεις και μεταβλητές είναι διαθέσιμες στο πακέτο:

    Ονομασία Τύπος Περιγραφή
    CreateProgressItem(String) Function Χρησιμοποιείται για τη δημιουργία ενός νέου στοιχείου προόδου στο περιβάλλον εργασίας χρήστη (UI).
    RaiseUpdateEvent(String, ProgressPanelItemStatus) Function Χρησιμοποιείται για την ενημέρωση της προόδου που έχει δημιουργηθεί από την κλήση στο CreateProgressItem(String).

    ProgressPanelItemStatus είναι ένα απαρίθμηση με τις ακόλουθες τιμές:

    Σε εξέλιξη = 0
    Πλήρες = 1
    Απέτυχε = 2
    Προειδοποίηση = 3
    Άγνωστο = 4
    RaiseFailEvent(String, Exception) Function Χρησιμοποιείται για την αποτυχία της εισαγωγής της τρέχουσας κατάστασης με ένα μήνυμα εξαίρεσης.
    IsRoleAssoicatedWithTeam(Guid, Guid) Function Χρησιμοποιείται για να προσδιορίσει εάν ένας ρόλος συσχετίζεται με μια συγκεκριμένη ομάδα.
    IsWorkflowActive(Guid) Function Χρησιμοποιείται για να προσδιοριστεί εάν μια συγκεκριμένη ροή εργασιών είναι ενεργή.
    PackageLog Δείκτης κλάσης Ένας δείκτη προς το προετοιμασμένο περιβάλλον εργασίας χρήστη καταγραφής για το πακέτο. Αυτό το περιβάλλον εργασίας χρήστη χρησιμοποιείται από ένα πακέτο για την καταγραφή μηνυμάτων και εξαιρέσεων στο αρχείο καταγραφής του πακέτου.
    RootControlDispatcher Ιδιότητα Ένα περιβάλλον εργασίας χρήστη αποστολέα που χρησιμοποιείται για να επιτρέπεται στο στοιχείο ελέγχου σας να αποδίδει το δικό το περιβάλλον εργασίας χρήστη κατά την ανάπτυξη του πακέτου. Χρησιμοποιήστε αυτό το περιβάλλον εργασίας για να συσκευάσετε τυχόν στοιχεία ή εντολές του περιβάλλοντος εργασίας. Είναι σημαντικό να ελέγχετε αυτή τη μεταβλητή για τιμές null πριν τη χρησιμοποιήσετε, καθώς ενδέχεται να μην έχει οριστεί κάποια τιμή.
    CrmSvc Ιδιότητα Ένας δείκτης προς μια κλάση CrmServiceClient που επιτρέπει σε ένα πακέτο την αντιμετώπιση του Dynamics 365 μέσα από το πακέτο. Χρησιμοποιήστε αυτόν τον δείκτη για να εκτελέσετε μεθόδους SDK και άλλες ενέργειες στις μεθόδους που έχουν παρακαμφθεί.
    DataImportBypass Ιδιότητα Καθορίστε εάν το Dynamics 365 Package Deployer παρακάμπτει όλες τις λειτουργίες εισαγωγής δεδομένων, όπως η εισαγωγή δειγμάτων δεδομένων Dataverse, δεδομένων απλών αρχείων και δεδομένων που έχουν εξαχθεί από το Configuration Migration Tool. Προσδιορίστε true ή false. Η προεπιλογή είναι false.
    OverrideDataImportSafetyChecks Ιδιότητα Καθορίστε εάν το Dynamics 365 Package Deployer θα παρακάμπτει ορισμένους ελέγχους ασφαλείας του, γεγονός που συμβάλλει στη βελτίωση της απόδοσης της εισαγωγής. Προσδιορίστε true ή false. Η προεπιλογή είναι false.

    Θα πρέπει να ορίσετε αυτήν την ιδιότητα σε true μόνο εάν η παρουσία προορισμού Dataverse δεν περιέχει δεδομένα.
  4. Αποθηκεύστε το έργο σας. Το επόμενο βήμα είναι η δημιουργία του πακέτου.

Δημιουργία και ανάπτυξη

Οι ακόλουθες ενότητες περιγράφουν τον τρόπο δημιουργίας και ανάπτυξης ενός πακέτου.

Δόμηση

Η κατασκευή του πακέτου σας περιγράφεται παρακάτω ανάλογα με το εργαλείο που χρησιμοποιείτε.

Για να δημιουργήσετε ένα πακέτο που δημιουργήθηκε με το CLI, θα μπορούσατε να φορτώσετε το αρχείο .csproj στο Visual Studio, αλλά αντ' αυτού θα χρησιμοποιήσουμε την εντολή dotnet και το MSBuild. Στο παρακάτω παράδειγμα θεωρείται ότι ο κατάλογος εργασίας περιέχει το αρχείο *.csproj.

> dotnet publish

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

Μπορείτε, προαιρετικά, να δείτε τις λεπτομέρειες του ενσωματωμένου πακέτου.

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

Το πακέτο σας απαρτίζεται από τα ακόλουθα αρχεία στο φάκελο <Project>\Bin\Debug.

  • <Φάκελος PackageName> : Το όνομα φακέλου είναι το ίδιο με αυτό που αλλάξατε για το όνομα φακέλου πακέτου στο βήμα 2.g αυτής της ενότηταςΠροσθήκη προσαρμοσμένου κώδικα . Αυτός ο φάκελος περιέχει όλες τις λύσεις, δεδομένα ρύθμισης παραμέτρων, απλά αρχεία και τα περιεχόμενα για το πακέτο σας.

Σημείωμα

Ενδέχεται να δείτε ένα φάκελο .NET (π.χ. net472) που να περιέχει έναν φάκελο δημοσίευσης. Το DLL και άλλα αρχεία έργου βρίσκονται σε αυτόν το φάκελο δημοσίευσης.

  • <PackageName.DLL>: Η συγκρότηση περιέχει τον προσαρμοσμένο κώδικα για το πακέτο σας. Από προεπιλογή, το όνομα της συγκρότησης είναι το ίδιο με το όνομα του έργου.

Ανάπτυξη

Αφού δημιουργήσετε ένα πακέτο, μπορείτε να το αναπτύξετε στην παρουσία του Dataverse χρησιμοποιώντας το εργαλείο Package Deployer, το Windows PowerShell ή μια εντολή CLI.

  • Για να αναπτύξετε χρησιμοποιώντας το εργαλείο Package Deployer, κάντε πρώτα λήψη του εργαλείου όπως περιγράφεται στα εργαλεία ανάπτυξης του Dataverse. Στη συνέχεια, ακολουθήστε τις λεπτομερείς πληροφορίες σχετικά με την ανάπτυξη πακέτων στο άρθρο Ανάπτυξη πακέτων με χρήση Package Deployer ή Windows PowerShell.

  • Για να αναπτύξετε χρησιμοποιώντας το CLI, χρησιμοποιήστε την εντολή pac package deploy.

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

    Σημείωμα

    Για να αναπτύξετε ένα πακέτο σε περιβάλλον προορισμού χρησιμοποιώντας το CLI, πρέπει πρώτα να ρυθμίσετε ένα προφίλ ελέγχου ταυτότητας και να επιλέξετε έναν οργανισμό. Περισσότερες πληροφορίες: pac auth create, pac org select

Βέλτιστες πρακτικές

Παρακάτω παρατίθενται μερικές βέλτιστες συμβουλές πρακτικής που μπορείτε να ακολουθήσετε κατά την εργασία με πακέτα Package Deployer.

Δημιουργία πακέτων

Κατά τη δημιουργία πακέτων, οι προγραμματιστές πρέπει:

  • Βεβαιωθείτε ότι τα συγκροτήματα πακέτων είναι υπογεγραμμένα.

Ανάπτυξη πακέτων

Όταν αναπτύσσουν πακέτα, οι διαχειριστές του Dataverse πρέπει να:

  • Επιμείνετε σε υπογεγραμμένες συγκροτήσεις πακέτων, ώστε να μπορείτε να παρακολουθείτε μια συγκρότηση πίσω στην προέλευσή της.
  • Δοκιμάστε το πακέτο σε μια παρουσία προπαραγωγής, κατά προτίμηση ένα είδωλο κατοπτρισμού του παρουσία παραγωγής, πριν το εκτελέσετε σε ένα παρουσία παραγωγής.
  • Δημιουργήστε αντίγραφα ασφαλείας του παρουσία παραγωγής πριν από την ανάπτυξη του πακέτου.

Δείτε επίσης

Εργαλείο συσκευασίας λύσεων